Ruby 了解延迟工作状态

Ruby 了解延迟工作状态,ruby,delayed-job,Ruby,Delayed Job,我已经在我的Rails应用程序中使用和实现了长时间运行的任务。我的延迟_作业配置指示作业尝试一次,并指示保留失败: config/initializers/delayed_job.rb: Delayed::Worker.max_attempts = 1 Delayed::Worker.destroy_failed_jobs = false 我尝试了两个自动引发错误的测试作业,以查看失败的表现。我得到的是: 我的预期是失败的工作将有2个计数,但排队的/工作的/等待的都将是0。我找不到任何文档说

我已经在我的Rails应用程序中使用和实现了长时间运行的任务。我的延迟_作业配置指示作业尝试一次,并指示保留失败:

config/initializers/delayed_job.rb:

Delayed::Worker.max_attempts = 1
Delayed::Worker.destroy_failed_jobs = false
我尝试了两个自动引发错误的测试作业,以查看失败的表现。我得到的是:

我的预期是失败的工作将有2个计数,但排队的/工作的/等待的都将是0。我找不到任何文档说明是什么决定作业是否排队/工作/挂起,甚至找不到工作挂起之间的区别(web界面将这两个列表描述为“包含当前正在处理的作业”。)

有人能提供一些清晰的信息吗

如果选中,您将看到以下内容(起始行114):

  • Enqueued是延迟作业的总数,即
    delayed::Job.count

  • 工作作业是指那些已被延迟的作业流程锁定且当前正在工作的作业

  • 失败的是那些有
    last\u错误的

  • 挂起的是那些从未尝试过的作业


  • @谢谢,除了工作状态,这一切都是有意义的。如果某个作业失败,且最大尝试次数=1,为什么该作业仍被视为工作/锁定?我同意你的观点;然而,他们在源代码中就是这样做的。你可以找到他们的来源并更新它,如果它困扰着你,然后把你的宝石放进你的Gemfile:-)你是怎么得到那张表的?我找不到监视队列的好方法。。
    when :working
      'locked_at is not null'
    when :failed
      'last_error is not null'
    when :pending
      'attempts = 0'
    end