ruby - 了解 delayed_job 状态

标签 ruby delayed-job

我已经使用 delayed_job 在我的 Rails 应用程序中实现了长时间运行的任务连同 delayed_job_web .我的 delayed_job 配置指示作业尝试一次,并保留失败:

config/initializers/delayed_job.rb:

Delayed::Worker.max_attempts = 1
Delayed::Worker.destroy_failed_jobs = false

我尝试了 2 个自动引发错误的测试作业,以查看失败的行为。我得到的是以下内容:

enter image description here

我的预期是失败的作业计数为 2,但排队/工作/待处理 都为 0。我找不到任何关于确定工作是否入队/工作/待定的文件,甚至是工作之间的区别Pending 是(网络界面将这两个列表描述为“包含当前正在处理的作业”。)

任何人都可以澄清一下吗?

最佳答案

如果你勾选https://github.com/ejschmitt/delayed_job_web/blob/master/lib/delayed_job_web/application/app.rb ,您会看到以下内容(从第 114 行开始):

when :working
  'locked_at is not null'
when :failed
  'last_error is not null'
when :pending
  'attempts = 0'
end
  1. Enqueued 是延迟作业的总数,即 Delayed::Job.count

  2. 工作作业是那些已被 delayed_job 进程锁定并且当前正在工作的作业。

  3. 失败的是那些有last_error

  4. Pending 是那些从未尝试过的工作。

关于ruby - 了解 delayed_job 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21791348/

相关文章:

ruby-on-rails - 为什么我可以使用 irb 的 RMagick 而不是 rails 控制台?

ruby-on-rails - 如何在 View 中使用 paper_trail 格式化变更集的输出?

ruby-on-rails - Rails 5升级打破了延迟任务

ruby-on-rails - 为 DelayedJob 设置租户范围

ruby-on-rails - 通过delayed_job 使用Gibbon gem 时出错?

ruby - MongoDB Ruby 驱动程序的问题

ruby - 如何使用 Setter 使 Ruby 类表现得像散列

ruby-on-rails - RSpec - stub 模块中的#super调用#prepend monkeypatch

ruby-on-rails - 为 delayed_job 设置 MAX_RUN_TIME - 我可以设置多少时间?

ruby-on-rails - 什么可能导致预定的 Rails 事件作业消失?