gpt4 book ai didi

ruby-on-rails - delayed_job - 执行的代码不是最新的?

转载 作者:行者123 更新时间:2023-12-04 06:25:05 27 4
gpt4 key购买 nike

我在 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

在我调用的一个简单 Controller 中:

Delayed::Job.enqueue(XxJob.new)

我得出的结论:

  1. 如果我将 xx_job.rb 更改为 xx_job1.rb - Controller 出错
  2. 如果我将类 XxJob 更改为类 XxJob1 - Controller 出错
  3. 如果我删除所有的执行方法内容——旧代码旧代码被执行
  4. 带有类的新 .rb 文件并执行,将此类加入队列 - 完美运行
  5. 如果我再次更改新文件的执行和运行作业中的某些内容 - 将执行旧代码

在每次更改之间,我都会重新启动服务器。似乎 Passenger 或其他东西保存了类缓存。

如何删除这个缓存?是否存储在服务器的某个地方? (我希望我可以从共享主机访问它)

谢谢!

最佳答案

如果您运行延迟工作的工作人员守护进程,那么您需要重新启动他们以重新加载代码。另外,请记住每个工作人员加载自己的 rails 实例。

关于ruby-on-rails - delayed_job - 执行的代码不是最新的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1971315/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com