我使用以下设置延迟了作业设置:
Delayed::Worker.max_attempts = 3
Delayed::Worker.delay_jobs = !Rails.env.test?
Delayed::Worker.destroy_failed_jobs = false
Delayed::Worker.sleep_delay = 120
我已经启动了一名工作人员,他正在开发中并已配置ActionMailer来发送邮件。
我也在控制器中使用以下内容来调用它:
OrderMailer.delay.order_notification(@order)
我可以看到在Mongo中创建的作业,它们在控制台中没有显示任何错误,如何查明是否有任何错误?有某种工作日志吗?
我在控制台中获得以下内容:
1 jobs processed at 3.6244 j/s, 0 failed ..
答案 0 :(得分:2)
应该有log/delayed_job.log
列出处理的作业。您还可以使用数据库访问失败任务的错误。
>> failed_jobs = Delayed::Job.where('attempts > 0')
>> failed_jobs.first.last_error
答案 1 :(得分:0)
调试DelayedJob的另一个好方法是gem 延迟作业网(请参阅https://github.com/ejschmitt/delayed_job_web),它为您提供了“ Resque like web interface for delayed job “,可通过http://localhost:3000/delayed_job
访问。界面提供了“失败的工作”-Tab,您可以在其中调查“最后一个错误” - 比终端更方便...