Я успешно использую delayed_job уже пару лет, но недавно у меня возникла необходимость реализовать какой-то обратный вызов/хуки успеха/неудачи.
Следуя руководству delayed_job на github, я настроил следующее пользовательское задание:
class XmlImportJob < Struct.new(:file, :supplier_id, :user_id, :directory)
def perform
Product.xml_import(file, supplier_id, user, directory)
end
def success(job)
ProductMailer.xml_import_complete.deliver
end
def failure(job)
ProductMailer.xml_import_failed.deliver
end
end
Например, при запуске этого с Delayed::Job.enqueue XmlImportJob.new(secure_url, 1, 1, directory)
я получаю ошибку Job failed to load: uninitialized constant XmlImportJob.
.
Я попытался сохранить свою пользовательскую работу, которая находится в файле с именем xml_import.rb
в разделе app/jobs и lib, и я получаю ту же ошибку.
На данный момент я только пытался запустить это через консоль рельсов. Даже при явном вызове require 'xml_import'
, который возвращает true, я получаю ту же ошибку.
Кто-нибудь, у кого есть опыт успешного использования пользовательских delayed_jobs, знает, что я здесь делаю?
XMLImportJob
не является объектом очереди? Я могу ошибаться здесь, но я уверен, что вам нужно создать какую-то очередь, которую вы затем можете добавить в DelayedJob? - person Richard Peck   schedule 05.12.2013XmlImportJob' but the file is just
xml_import.rb' также, что приложение/работы не загружаются автоматически. - person Raoot   schedule 05.12.2013XmlImportJob
:) - person Richard Peck   schedule 05.12.2013