Неисправность загрузки класса из Rake Job для Resque - PullRequest
0 голосов
/ 01 июля 2019

Я хочу настроить фоновое задание 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
...