gpt4 book ai didi

ruby-on-rails-3 - delay_job 更新查询无限运行

转载 作者:行者123 更新时间:2023-12-03 23:54:27 25 4
gpt4 key购买 nike

我在 Rails 应用程序中使用 delay_job 和 delay_job_active_record 作为后台作业执行。我们正在使用基于队列的 delay_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 秒)-我知道这会填满您的日志,并且似乎是“无限的”.. :)

如果这就是你的意思,那么我建议你运行 workless gem .它只会开始 delayed_job根据需要。很多人用它来保持他们的Heroku worker dynos 从空闲运行,但它在 development 中工作得一样好模式。

请注意,如果您使用的是 delayed_job_active_record ,您还需要添加 gem 'daemons'给您的 Gemfile ( daemons )。见 Running Jobs section of delayed_job .

因此,您的 Gemfile将包含:

gem 'delayed_job_active_record'
gem 'daemons'
gem 'workless'

如果您需要更多指导,请在下面的评论中告诉我。

关于ruby-on-rails-3 - delay_job 更新查询无限运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16033610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com