class ScaleWorkers::Adapter::DelayedJobActiveRecord
Constants
- PRIME
- TIMEOUT
Attributes
pid_switch[RW]
Public Class Methods
new()
click to toggle source
# File lib/scale_workers/adapter/delayed_job_active_record.rb, line 18 def initialize @pid_switch = 0 end
Public Instance Methods
count_procedure()
click to toggle source
# File lib/scale_workers/adapter/delayed_job_active_record.rb, line 42 def count_procedure lambda {|queue, max_failure| Delayed::Job.where(queue: queue).where("attempts <= ?", max_failure).count} end
dj_call(command, queue, pid_dir, count)
click to toggle source
# File lib/scale_workers/adapter/delayed_job_active_record.rb, line 54 def dj_call(command, queue, pid_dir, count) say('DJ call') `cd #{Rails.root.to_s}; RAILS_ENV=#{Rails.env} #{::ScaleWorkers.configuration.worker_executable_path} --queue='#{queue}' -p'#{queue}' --pid-dir=#{pid_dir} -n#{count} #{command}` end
increment_pid_switch()
click to toggle source
# File lib/scale_workers/adapter/delayed_job_active_record.rb, line 46 def increment_pid_switch self.pid_switch = (self.pid_switch + 1) % PRIME end
pid_dir(queue)
click to toggle source
# File lib/scale_workers/adapter/delayed_job_active_record.rb, line 50 def pid_dir(queue) File.join(Rails.root.to_s, "tmp", "pids", "#{queue}.#{self.pid_switch}") end
start_procedure()
click to toggle source
# File lib/scale_workers/adapter/delayed_job_active_record.rb, line 32 def start_procedure lambda do |queue, count| say('Inside start procedure') adapter = self #::ScaleWorkers.configuration.adapter adapter.increment_pid_switch pid_dir = adapter.pid_dir(queue) adapter.dj_call(adapter.class::Command::START, queue, pid_dir, count) end end
stop_procedure()
click to toggle source
# File lib/scale_workers/adapter/delayed_job_active_record.rb, line 22 def stop_procedure lambda do |queue, count| say('Inside stop procedure') adapter = self#::ScaleWorkers.configuration.adapter pid_dir = adapter.pid_dir(queue) adapter.dj_call(adapter.class::Command::STOP, queue, pid_dir, count) sleep(adapter.class::TIMEOUT) end end