【发布时间】:2011-06-30 12:32:00
【问题描述】:
我将 Rails 2.3.8 与 Ruby 1.8.7 一起使用。我创建了一个名为Foo 的新ActiveRecord 模型(使用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 脚本,但没有任何变化。
以前有人见过这个问题吗?
【问题讨论】:
标签: ruby-on-rails activerecord delayed-job