如何查看延迟任务队列?

75

我想知道我是否成功地让Delayed::Job正常工作了。 无法在delayed_jobs表中看到作业。

  • 这是正常的吗?
  • 还有其他方法可以查看作业队列吗?
2个回答

127

DelayedJob 会为每个入队的作业存储一个数据库记录,因此您可以通过 Rails 控制台直接检索它们(假设您正在使用 ActiveRecord 或类似工具)。

打开 Rails 控制台:

$ rails c

然后查询已入队的作业:

Delayed::Job.all

或者
Delayed::Job.last

请查看文档

如果您使用了其他数据库,例如Redis来安装delayed_job,您可能需要前往那里检查排队的作业。


1
在测试用例中,我如何启动特定队列上的Delayed::Worker? - Zia Qamar

9

是的,你应该能在delayed_jobs表中看到作业。但当延迟任务成功运行时,它们就会被删除。因此,这可能只是一时的事情。(Delayed Job每5秒钟检查新作业,因此在短时间内运行的作业平均可能只持续几秒钟。)如果我想检查delayed_jobs表中的有效负载对象,我通常会确保关闭延迟作业守护程序。


默认情况下,失败的作业会被删除,但是可以配置Delayed::Job来保留它们。 - JD.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接