如何删除 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")
但它不起作用
ActiveJob 在您的作业 class 周围使用包装器 class。所以对于 Resque,包装器 class 名称是 ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper
.
对于队列名称,我建议您通过 Resque.queues
检查您拥有的可用队列。有时,环境名称将附加到默认队列名称。所以在你的情况下,你可以尝试:
Resque.destroy("#{environment_name}_default", "ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper")
希望这对您有所帮助
我正在使用 Resque with Redis 作为通过 ActiveJob 的排队后端。如何清除所有队列以防止作业再次 运行。
从文档中,我看到我可以做到
Resque::Job.destroy(queue_name, "Job_CLass_Name")
所以在我的例子中,我使用的是默认队列,我的作业 class 名称是 NotificationJob
,这就是我在 Heroku 的控制台上所做的:
Resque::Job.destroy("default", "NotificationJob")
但它不起作用
ActiveJob 在您的作业 class 周围使用包装器 class。所以对于 Resque,包装器 class 名称是 ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper
.
对于队列名称,我建议您通过 Resque.queues
检查您拥有的可用队列。有时,环境名称将附加到默认队列名称。所以在你的情况下,你可以尝试:
Resque.destroy("#{environment_name}_default", "ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper")
希望这对您有所帮助