Неисправность загрузки класса из Rake Job для Resque

Я хочу настроить фоновое задание Resque, которое запускается при загрузке приложения через задачу Rake. Я использую Rails Engine, который будет использоваться во многих похожих приложениях. Я могу поставить задачу в очередь, но продолжаю получать ошибку «Неинициализированная константа» от Resque, когда он пытается выполнить.

Я могу поставить в очередь задание, запустить работника и т. Д. В моем граблевом файле Resque он может загрузить среду (как мне кажется ...) и требует класс задания.

В веб-интерфейсе Resque все задания не выполняются с Uninitialized constant LinkEngine::SyncTaskParameters. Все остальные статьи, которые я читал, говорят, что это потому, что класс недоступен для работника Resque, и предложил включить его в Rakefile. Я сделал это и все еще сталкиваюсь с проблемой. Я предполагаю, что это затрудняет использование движка, но я не достаточно опытен с Rails, чтобы понять это.

Resque настраивается в LinkEngine.

В 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
0
задан Sqlaroche 1 July 2019 в 19:34
поделиться