Я использую Rails 2.3.8 с Ruby 1.8.7.Я создал новую модель ActiveRecord под названием Foo
(сгенерированную с использованием script/generate model Foo ...
) с методом #self.bar(x, y)
и в контроллере, который я вызываю Foo.send_later(:bar, x, y)
.В моей (Windows) среде разработки это работает нормально, когда я работаю rake jobs:work
.В моей (Linux) производственной среде это также работает, если я использую rake jobs:work RAILS_ENV=production
, но если я запускаю RAILS_ENV=production script/delayed_job start
, в файле delayed_job.log я получаю
2011-02-19T12:27:11-0800: * [Worker(delayed_job host:myhost pid:3673)] acquired lock on Foo.bar
Could not load object for job: uninitialized constant Foo
2011-02-19T12:27:11-0800: * [JOB] delayed_job host:myhost pid:3673 completed after 0.0024
2011-02-19T12:27:11-0800: 1 jobs processed at 32.4446 j/s, 0 failed ...
Мои другие отложенные заданияработают нормально, только у этого нового проблема.Foo
доступен из script/console production
, и я попытался touch tmp/restart.txt
или даже перезапустил apache2 и затем перезапустил скрипт delayed_job, но изменений не было.
Кто-нибудь видел эту проблему раньше?*