class DispatchRider::ScheduledJob
Public Class Methods
publish_due_jobs(every: nil)
click to toggle source
@param [ActiveSupport::Duration] every @example: DispatchRider::ScheduledJob.publish_due_jobs
every 1.minute
# 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
publisher()
click to toggle source
# File lib/dispatch-rider/scheduled_job.rb, line 15 def publisher @publisher ||= Publisher.new end
Private Class Methods
get_new_claim_stub()
click to toggle source
# File lib/dispatch-rider/scheduled_job.rb, line 32 def get_new_claim_stub { claim_id: SecureRandom.uuid, claim_expires_at: 30.minutes.from_now } end
Public Instance Methods
publish()
click to toggle source
# File lib/dispatch-rider/scheduled_job.rb, line 49 def publish publisher.publish(destinations: destinations, message: message) destroy # once published end