我在rails应用程序中使用delayed_job和delayed_job_active_record进行后台作业执行.我们正在使用基于队列的delayed_job.为了启动延迟我正在使用以下命令.
RAILS_ENV=staging script/delayed_job -i=1 --queue=queue_name start
问题在于查询无限发射.
sql (0.4ms) UPDATE `delayed_jobs` SET `locked_at` = '2013-04-16 09:27:23',`locked_by` = 'delayed_job.=2 host:ip-10-204-210-77 pid:2168' WHERE `delayed_jobs`.`queue` IN ('queue_name') AND ((run_at <= '2013-04-16 09:27:23' AND (locked_at IS NULL OR locked_at < '2013-04-16 05:27:23') OR locked_by = 'delayed_job.=2 host:ip-10-204-210-77 pid:2168') AND Failed_at IS NULL) ORDER BY priority ASC,run_at ASC LIMIT 1
而delayed_job计数为零.由于这个原因,应用程序非常慢,并且在许多地方都没有加载页面.
任何人都可以提出解决方案.
谢谢
问候.
解决方法
我想你的意思是delayed_job调查太频繁(默认情况下每隔5秒) – 我知道填满你的日志,似乎“无限”..