从Rake作业为Resque加载类时遇到问题

时间:2019-07-01 19:34:51

标签: ruby-on-rails resque rails-engines

我想设置一个后台Resque作业,该任务通过Rake任务在应用程序加载时启动。我正在使用将由许多类似应用程序使用的Rails引擎。我可以入队,但尝试执行时,总是从Resque收到“未初始化的常量”错误。

我能够排队工作,让一名工人上班,等等。在我的Resque rake文件中,它能够加载环境(因此,我相信...),并且需要作业类别。

在Resque Web前端中,所有作业均失败,并显示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 个答案:

没有答案