我在site5.com共享主机上使用delayed_job(尝试了tobi和collective_idea的),以乘客作为rails环境。 我设法完成了工作。 但是,插件似乎在第一次运行后忽略作业类源代码中的任何更改。 我已经在每次更改(touch tmp/restart.txt
)上重新启动服务器,但仍然忽略它。delayed_job - 执行不是最新的代码?
例子:
文件:lib/xx_job.rb
class XxJob
def perform
Rails.logger.info "XX START"
TempTest.delete_all
i = 0
10.times {
i+=1
TempTest.create(:name => "XXX")
sleep(1)
}
Rails.logger.info "XX END"
end
end
在一个简单的控制器I拨打:
Delayed::Job.enqueue(XxJob.new)
结论我已经收集:
- 如果我改变xx_job。 rb到xx_job 1.rb - 控制器上的错误
- 如果我改变类XxJob类XxJob1 - 错误控制器
- 。如果我删除所有的执行方法的内容 - 在执行旧代码,旧代码
- 新的.rb文件带班并执行,排队这一类 - 完美的作品
- 如果我更改了新文件的执行,并再次运行工作的东西 - 旧的代码被执行
我做了一个重启服务器的每一个变化之间。 它似乎像乘客或其他东西保存类缓存。
如何删除此缓存?是存储在服务器的某个地方吗? (我希望我可以从共享主机访问它)
谢谢!
你见过这个答案吗? http://stackoverflow.com/questions/1609586/rails-delayedjob-want-to-load-newest-version-of-job-class – 2009-12-28 20:34:26