Class: Jobs::ProcessBulkInviteEmails

Inherits:
Base
  • Object
show all
Defined in:
app/jobs/regular/process_bulk_invite_emails.rb

Instance Method Summary collapse

Methods inherited from Base

acquire_cluster_concurrency_lock!, clear_cluster_concurrency_lock!, cluster_concurrency, cluster_concurrency_redis_key, delayed_perform, #error_context, get_cluster_concurrency, #last_db_duration, #log, #perform, #perform_immediately

Instance Method Details

#execute(args) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/jobs/regular/process_bulk_invite_emails.rb', line 5

def execute(args)
  pending_invite_ids =
    Invite
      .where(emailed_status: Invite.emailed_status_types[:bulk_pending])
      .limit(Invite::BULK_INVITE_EMAIL_LIMIT)
      .pluck(:id)

  if pending_invite_ids.length > 0
    Invite.where(id: pending_invite_ids).update_all(
      emailed_status: Invite.emailed_status_types[:sending],
    )
    pending_invite_ids.each { |invite_id| ::Jobs.enqueue(:invite_email, invite_id: invite_id) }
    ::Jobs.enqueue_in(1.minute, :process_bulk_invite_emails)
  end
end