【发布时间】:2019-08-25 14:18:06
【问题描述】:
我在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 文件,将该类加入队列 - 完美运行
- 如果我在新文件的执行和运行作业中更改某些内容 - 将执行旧代码
在每次更改之间,我都重新启动了服务器。 似乎Passenger或其他东西可以保存类缓存。
如何删除此缓存?是存储在服务器上的某个地方吗? (我希望我可以从共享主机访问它)
谢谢!
【问题讨论】:
-
你看到这个答案了吗? stackoverflow.com/questions/1609586/…
标签: ruby-on-rails passenger delayed-job