如何查看延迟的作业队列?

Posted

技术标签:

【中文标题】如何查看延迟的作业队列?【英文标题】:How can I see the delayed job queue? 【发布时间】:2013-09-04 23:51:01 【问题描述】:

我想知道我是否成功让Delayed::Job 工作。 在delayed_jobs 表中看不到职位。

这正常吗? 还有其他方法可以查看作业队列吗?

【问题讨论】:

【参考方案1】:

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

打开rails控制台:

$ rails c

然后查询入队的作业:

$ Delayed::Job.all

$ Delayed::Job.last

查看documentation。

如果您使用其他数据库(如 Redis)安装了延迟作业,您可能想去那里检查排队的作业。

【讨论】:

如何在测试用例的特定队列上启动 Delayed::Worker?【参考方案2】:

您应该在delayed_jobs 表中看到作业,是的。但是,当延迟的作业成功运行时,它们会被删除。所以这可能只是转瞬即逝的事情。 (Delayed Job 每 5 秒检查一次表中是否有新作业运行,因此对于短时间运行的作业,该记录可能仅持续几秒钟。)如果我想检查,我通常会确保延迟作业守护程序已关闭delay_jobs 表中的负载对象。

【讨论】:

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

以上是关于如何查看延迟的作业队列?的主要内容,如果未能解决你的问题,请参考以下文章

Android Work Manager:如何每月将作业排入队列

如何查看 AWS Batch 计算环境错误?

Rails/Rspec:测试延迟作业邮件

Rails 4.2 从活动作业中获取延迟的作业 ID

在tmux中 squeue查看作业运行队列

linux中如何把一个进程放在后台运行