调用 perform_later 后取消 ActiveJob

问题描述

运行 SomeJob.perform_later 后,我可以看到该作业已在 ActiveJob::Base.queue_adapter.enqueued_jobs 中排队。

如果我已经保存了 job_id,如何从队列中删除作业?

基本上我想从队列中删除作业。

解决方法

调用 perform_later 会将作业排入您使用的任何后端。 ActiveJob 接口不提供删除作业的方法。如果您使用 Sidekiq 作为后端 this documentation explains how to remove a job from a queue