class SidekiqSchedulable::Middleware::Server

Public Class Methods

new(schedules = {}) click to toggle source
# File lib/sidekiq_schedulable/middleware/server.rb, line 6
def initialize(schedules = {})
  @schedules = schedules
end

Public Instance Methods

call(worker, item, queue) { || ... } click to toggle source
# File lib/sidekiq_schedulable/middleware/server.rb, line 10
def call(worker, item, queue)
  start_time = Time.now
  yield
ensure
  schedule_next_job(item, start_time) if item['scheduled']
end

Private Instance Methods

schedule_next_job(item, start_time) click to toggle source
# File lib/sidekiq_schedulable/middleware/server.rb, line 19
def schedule_next_job(item, start_time)
  class_name = item['class']
  if schedule = @schedules[class_name]
    Schedule.enqueue(schedule, start_time)
  end
end