95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# File 'lib/delayed/worker.rb', line 95
def start
say "*** Starting job worker #{name}"
trap('TERM') { say 'Exiting...'; $exit = true }
trap('INT') { say 'Exiting...'; $exit = true }
trap('QUIT') do
say "Delayed::Worker stack trace:"
say caller.join("\t\n")
$exit = false
end
loop do
result = nil
realtime = Benchmark.realtime do
result = work_off
end
count = result.sum
break if $exit
if count.zero?
sleep(@@sleep_delay)
else
say "#{count} jobs processed at %.4f j/s, %d failed ..." % [count / realtime, result.last]
end
break if $exit
end
ensure
Delayed::Job.clear_locks!(name)
end
|