[英]Delayed Job not picking job from table
在我当前的项目中,我正在使用“延迟作业” gem在后台进行一些处理。 它在本地工作正常,但在生产作业中将其插入“延迟作业”表中,但DJ并未从该DJ表中挑选少量作业。 谁能想到“延迟作业”将如何从“延迟作业”表中提取作业。
以下是我的项目中的延迟工作代码:
Delayed::Job.enqueue(ProposalJob.new(current_user, @proposal, request.host, params[:proposal][:revision_notes], params[:proposal][:close_date]), :queue => 'publishing')
我的项目中的作业配置延迟:
Delayed::Worker.destroy_failed_jobs = false Delayed::Worker.max_attempts = 3 Delayed::Worker.max_run_time = 1.hours Delayed::Worker.read_ahead = 10
延迟的工作不可能会选择某些工作而不会选择其他工作。 它要么处理所有作业,要么不处理任何作业。 如果它处理任何作业,则您的配置正确。
由于Delayed::Worker.destroy_failed_jobs = false
因此可能存在此配置问题。 如果您的任何作业失败三遍,那么它将不会从延迟的作业表中删除。 因此,您可能会觉得此作业没有得到处理。
尝试使用puts
调试延迟的作业代码。
您也可以尝试https://github.com/resque/resque-scheduler,这将提供可视化的方式来查看延迟的工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.