Class: DispatchRider::ScheduledJob

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/dispatch-rider/scheduled_job.rb

Defined Under Namespace

Modules: Migration

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.publish_due_jobs(every: nil) ⇒ Object

@example: DispatchRider::ScheduledJob.publish_due_jobs every 1.minute

Parameters:

  • every (ActiveSupport::Duration) (defaults to: nil)


21
22
23
24
25
26
27
28
# File 'lib/dispatch-rider/scheduled_job.rb', line 21

def publish_due_jobs(every: nil)
  loop {
    claim_stub = get_new_claim_stub
    due.unclaimed.update_all claim_stub
    due.claimed_by(claim_stub[:claim_id]).find_each(&:publish)
    every ? sleep(every) : break # until the next loop
  }
end

.publisherObject



15
16
17
# File 'lib/dispatch-rider/scheduled_job.rb', line 15

def publisher
  @publisher ||= Publisher.new
end

Instance Method Details

#publishObject



49
50
51
52
53
# File 'lib/dispatch-rider/scheduled_job.rb', line 49

def publish
  publisher.publish(destinations: destinations, message: message)

  destroy # once published
end