如何删除 Resque ActiveJob 队列

How to delete Resque ActiveJob Queue

我正在使用 Resque with Redis 作为通过 ActiveJob 的排队后端。如何清除所有队列以防止作业再次 运行。

从文档中,我看到我可以做到

Resque::Job.destroy(queue_name, "Job_CLass_Name")

所以在我的例子中,我使用的是默认队列,我的作业 class 名称是 NotificationJob,这就是我在 Heroku 的控制台上所做的:

Resque::Job.destroy("default", "NotificationJob")

但它不起作用

A​​ctiveJob 在您的作业 class 周围使用包装器 class。所以对于 Resque,包装器 class 名称是 ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper.

对于队列名称,我建议您通过 Resque.queues 检查您拥有的可用队列。有时,环境名称将附加到默认队列名称。所以在你的情况下,你可以尝试:

Resque.destroy("#{environment_name}_default", "ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper")

希望这对您有所帮助