Я хочу настроить фоновое задание Resque, которое запускается при загрузке приложения через задачу Rake. Я использую Rails Engine, который будет использоваться во многих похожих приложениях. Я могу поставить задачу в очередь, но продолжаю получать ошибку «Неинициализированная константа» из Resque при попытке выполнения.
Я могу поставить задачу в очередь, запустить работника и т. Д. В моем граблевом файле Resque он может загрузить среду (так я считаю ...) и требовать класс задания.
В веб-интерфейсе Resque все задания завершаются с Uninitialized constant LinkEngine::SyncTaskParameters
. Все остальные статьи, которые я читал, говорят, что это потому, что класс недоступен для работника Resque, и предложил включить его в Rakefile. Я сделал это и все еще сталкиваюсь с проблемой. Я предполагаю, что использование двигателя затруднительно, но я не достаточно опытен с Rails, чтобы понять это.
Resque настроен в LinkEngine.
In engine.rb
:
require "resque"
В link_engine_tasks.rake
:
desc "Syncs parameters."
task :sync_task_parameters do
require 'link_engine/sync_parameters_job'
Resque.enqueue(LinkEngine::SyncTaskParameters)
end
В resque.rake
:
require 'resque/tasks'
task 'resque:setup' => :environment do
require 'link_engine/sync_parameters_job'
end
Задание, о котором идет речь, SyncParametersJob
, определено в LinkEngine на lib/link_engine/sync_parameters_job
.
module LinkEngine
class SyncTaskParameters
@queue = :sync_task_parameters
def self.perform
# Do stuff
end
end
end