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