Как запросить обработчик delayed_job
Я играю с delayed_job, и мне нужно удалить все задание с указанным значением обработчика, я попытался таким образом
class Auction < ActiveRecord::Base
def clean_jobs
Delayed::Job.all.each do |job|
job.delete if job.payload_object.auction_id == id
end
end
end
и он работает, но я должен пройти всю очередь... не круто. Как я могу обойти это?
Спасибо вам
Ответы
Ответ 1
Вы используете payload_object, который является YAML-текстом.
Возможно, этот код сделает то же самое.
Delayed::Job.where("handler LIKE '%auction_id: #{id}%'").delete_all
И для двойной проверки:
Delayed::Job.where("handler LIKE '%auction_id: #{id}%'").each do |job|
job.delete if job.payload_object.auction_id == id
end