Ruby on rails Heroku resque/clockwork“没有为类定义作业”
我正在尝试使用Resque/Clockwork在Heroku上运行后台作业。 在本地,作业按时钟系统排队,并按预期由Resque执行。在Heroku上,有时它是有效的。。。但大多数时候,时钟系统会按照预期对作业进行排队,当Resque执行时,我会得到一个失败的作业,错误是“没有为类定义作业”。 通过Resque管理面板显示的确切错误是: 我的代码如下所示: /app/models/workers/featured_catalog_items_cache_worker.rb /lib/clock.rb /lib/tasks/resque.rake 程序文件 我错过什么了吗? 可能在/lib/clock.rb中 解决方案: require './config/boot' require './config/environment' require 'clockwork' require 'resque' module Clockwork handler do |job| puts "Running job : #{job}" Resque.enqueue(job) end every(15.minutes, NewsRssReader ) endRuby on rails Heroku resque/clockwork“没有为类定义作业”,ruby-on-rails,ruby,heroku,resque,clockwork,Ruby On Rails,Ruby,Heroku,Resque,Clockwork,我正在尝试使用Resque/Clockwork在Heroku上运行后台作业。 在本地,作业按时钟系统排队,并按预期由Resque执行。在Heroku上,有时它是有效的。。。但大多数时候,时钟系统会按照预期对作业进行排队,当Resque执行时,我会得到一个失败的作业,错误是“没有为类定义作业”。 通过Resque管理面板显示的确切错误是: 我的代码如下所示: /app/models/workers/featured_catalog_items_cache_worker.rb /
问题是,有一个节点实例运行自己的resque,但与rails共享redis,它们都在处理“*”队列。节点拾取rails作业并使用“未为类定义作业”出错,rails拾取节点作业并使用“错误的常量名称”出错。
class Workers::FeaturedCatalogItemsCacheWorker
@queue = :featured_catalog_items_cache
def self.perform
p 'do work' # there is more code here but edited for brevity
end
end
require File.expand_path('../../config/boot', __FILE__)
require File.expand_path('../../config/environment', __FILE__)
require 'clockwork'
module Clockwork
every(2.minutes, 'Queueing FeaturedCatalogItemsCacheWorker job') { Resque.enqueue(Workers::FeaturedCatalogItemsCacheWorker) }
end
require 'resque/tasks'
task "resque:setup" => :environment do
ENV['QUEUE'] = '*'
end
web: rackup -p $PORT
resque: env TERM_CHILD=1 bundle exec rake resque:work
clock: bundle exec clockwork lib/clock.rb
require 'Workers::FeaturedCatalogItemsCacheWorker'
require './config/boot'
require './config/environment'
require 'clockwork'
require 'resque'
module Clockwork
handler do |job|
puts "Running job : #{job}"
Resque.enqueue(job)
end
every(15.minutes, NewsRssReader )
end