Class: Sidekiq::Dejavu::Middleware::Server::Scheduler

Inherits:
Object
  • Object
show all
Includes:
Helper
Defined in:
lib/sidekiq/dejavu/middleware/server/scheduler.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Helper

#next_randomized_timestamp, #next_timestamp, #valid_cron?

Constructor Details

#initialize(options = {}) ⇒ Scheduler

Returns a new instance of Scheduler.



10
11
12
13
14
# File 'lib/sidekiq/dejavu/middleware/server/scheduler.rb', line 10

def initialize(options = {})
  # Sidekiq.logger.info "Intialized #{self.class} with options #{options.inspect}"
  @schedules = Sidekiq::ScheduledSet.new
  @options = options
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



8
9
10
# File 'lib/sidekiq/dejavu/middleware/server/scheduler.rb', line 8

def options
  @options
end

#schedulesObject (readonly)

Returns the value of attribute schedules.



8
9
10
# File 'lib/sidekiq/dejavu/middleware/server/scheduler.rb', line 8

def schedules
  @schedules
end

Instance Method Details

#call(worker, item, queue) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/sidekiq/dejavu/middleware/server/scheduler.rb', line 16

def call(worker, item, queue)
  start = Time.now
  interval = item['interval']
  schedule = item['schedule']

  yield

ensure
  if interval && not_already_scheduled?(schedule)
    time = relative_to_start? ? start : Time.now
    schedule_next_run(worker, item, interval, time)
  end
end