我想設置rake任務通過cron運行。這很容易,但要確保一次只能運行一次該rake任務的副本,並不容易。我想我可以在系統上使用ps來檢查並退出rake任務,如果它已經在運行,或者我可以做一個延遲的作業結構,在這裏我序列化任務的名稱,並在完成時從數據庫中刪除它,但是你們都推薦什麼?如何確保一次只有一個rake任務正在運行?
0
A
回答
0
Unix用pid文件解決了這個問題。 Pid文件位於/ var/run中,幷包含程序進程標識。這裏是手冊頁:http://fuse4bsd.creo.hu/localcgi/man-cgi.cgi?pidfile+3
你可能會發現它有點舊(我同意),但它是一個經常使用和驗證的方法。
0
您可以使用https://rubygems.org/gems/only_one_rake,像 命名空間:軌做 desc 「的在線用戶數」 only_one_task:online_user_count =>:環境做 循環{OnlineUser.count;睡1} 結束 結束
相關問題
- 1. Rake任務只有一次
- 2. Rails:一次運行多個rake任務?
- 3. 如何保證rake任務一次只能
- 4. 如何確保只有一個守護進程正在運行?
- 5. 如何確保在任務中循環至少運行一次
- 6. 如何確保一次腳本只運行一次
- 7. 如何驗證一系列rake任務是否正確運行?或者,有耙
- 8. 節點集羣:確保一次只有一個函數實例正在運行
- 9. 在另一個rake任務中並行運行rake multitask
- 10. 如何創建一個Rake任務,當任何Rake任務運行時將始終運行?
- 11. 每週運行一次任務,在Heroku上只運行4次
- 12. Rake任務在Heroku上運行兩次
- 13. SimpleCov:每次都沒有運行,只是使用rake任務
- 14. IntelliJ IDEA/RubyMine - 一次運行多個rake任務?
- 15. Gulp-browserSync任務只運行一次
- 16. 在celerybeat中一次只運行一個任務
- 17. 如何確保我只有一個遞歸setTimeouts鏈一次運行?
- 18. 如何在每次任務中運行一個capistrano任務?
- 19. 運行所有rake任務?
- 20. 如何確保只有一個AsyncTask在後臺運行
- 21. 運行多個rake任務
- 22. 我該如何在此任務中只運行一次
- 23. 如何確保從命令行運行elasticsearch只啓動一次?
- 24. 多個副本:如何確保只有一個副本運行
- 25. 確保一次只能運行一個進程
- 26. Rake - 運行一系列任務
- 27. 運行rake任務
- 28. 爲什麼循環中的Rake任務只執行一次?
- 29. 如何確保只有一個iOS應用程序的實例正在運行?
- 30. 運行rake任務,在Heroku
這看起來很不錯,其實!我找不到有關如何有效使用它的好教程,所以我將採用DelayedJob方法檢查PID文件並將其用於我的目的。謝謝。 – tesserakt 2010-09-10 19:45:26