我在site5.com 共享主机上使用delayed_job(尝试了tobi 和collective_idea),乘客作为rails 环境。我设法完成了工作。但是,该插件似乎在首次运行后忽略了作业类源代码中的任何更改。我在每次更改时都重新启动了服务器(touch tmp/restart.txt
),但它仍然忽略它。
例子:
文件: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
在一个简单的控制器中,我调用:
Delayed::Job.enqueue(XxJob.new)
我收集到的结论:
- 如果我将 xx_job.rb 更改为 xx_job1.rb - 控制器上的错误
- 如果我将类 XxJob 更改为类 XxJob1 - 控制器上的错误
- 如果我删除所有的perform方法内容-旧代码旧代码被执行
- 带有类和执行的新 .rb 文件,将此类入队 - 完美运行
- 如果我在新文件的执行中更改某些内容并再次运行作业 - 执行旧代码
在每次更改之间,我都重新启动了服务器。似乎乘客或其他东西可以保存类缓存。
如何删除此缓存?是存储在服务器上的某个地方吗?(我希望我可以从共享主机访问它)
谢谢!