Class: Delayed::Schedule

Inherits:
Plugin
  • Object
show all
Defined in:
lib/delayed/schedule.rb

Defined Under Namespace

Classes: ScheduleTask

Class Method Summary collapse

Class Method Details

.every(time_range, &block) ⇒ Object



19
20
21
22
# File 'lib/delayed/schedule.rb', line 19

def self.every(time_range, &block)
  @schedule_tasks ||= []
  @schedule_tasks.push(ScheduleTask.new(time_range, block))
end

.run?(worker) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/delayed/schedule.rb', line 28

def self.run?(worker)
  !@worker_select.respond_to?(:call) || @worker_select.call(worker)
end

.run_tasksObject



9
10
11
12
13
14
15
16
17
# File 'lib/delayed/schedule.rb', line 9

def self.run_tasks
  @schedule_tasks ||= []
  @schedule_tasks.select(&:run_necessary?).each do |task|
    task.perform
  rescue StandardError => e
    Rails.logger.error e.message
    Rails.logger.error e.backtrace.join("\n")
  end
end

.worker_select=(proc) ⇒ Object



24
25
26
# File 'lib/delayed/schedule.rb', line 24

def self.worker_select=(proc)
  @worker_select = proc
end