2011-03-29 8 views
2

私はRails 3アプリケーションで遅延ジョブを利用しようとしていますが、ジョブはエラーで失敗し続けます。Job failed to load: uninitialized constant CrawlJob.ジョブの読み込みに失敗しました:ジョブとレール3を遅延させた初期化されていない定数

他のSOスレッドをいくつか見つけて、そこにアドバイスをしています。ここに関連コードがあります。

Application.rb

require File.expand_path('../boot', __FILE__) 

require 'rails/all' 

...

module Decurate 
    class Application < Rails::Application 

...

config.autoload_paths += %W(#{config.root}/lib) 
    config.autoload_paths += Dir["#{config.root}/lib/**/"] 

...

end 
end 

/lib/crawl_job.rb

class CrawlJob < Struct.new(:merchant_id,:ec2,:s3) 
    def perform 

...

end 
end 

/lib/tasks/cron.rake

merchants = Store.all.collect{ |store| store[:merchant_id] } 
    merchants.each do |merchant_id| 
    queue.push merchant_id 
    end 
    merchants.each do |merchant_id| 
    Delayed::Job.enqueue CrawlJob.new(merchant_id,@ec2,@s3) 
    end 

答えて

3

申し訳ありませんが、誰も、それはそうです私は単にautoload_pathsを使いこなしていたので、ワーカープロセスを再起動するのを忘れてしまった。参考までに、上記の配置が有効であるはずです。 rake jobs:workで新しい労働者を立ち上げるのを忘れないでください!

関連する問題