Method: Delayed::Worker#run

Defined in:
lib/delayed/worker.rb

#run(job) ⇒ Object

[View source]

150
151
152
153
154
155
156
157
158
159
160
161
# File 'lib/delayed/worker.rb', line 150

def run(job)
  runtime =  Benchmark.realtime do
    Timeout.timeout(self.class.max_run_time.to_i) { job.invoke_job }
    job.destroy
  end
  # TODO: warn if runtime > max_run_time ?
  say "* [JOB] #{name} completed after %.4f" % runtime
  return true  # did work
rescue Exception => e
  handle_failed_job(job, e)
  return false  # work failed
end