在tomcat/jetty服務器上運行週期性任務(如守護進程線程)的最佳/最簡單的方法是什麼?我如何開始線程?有一個簡單的機制,或者這是一個壞主意嗎?在後臺運行服務器上的定期任務
回答
在ServeletContext中存儲一個java.util.Timer(或更好的ScheduledExecutor)實例是可行和有效的。在Servlet的init()調用中創建它,並且所有的servlet都可以向它添加TimerTasks。
適用於很多系統的一種通用的方式是簡單地執行一個cron作業,它會對您的應用程序執行週期性wget。
我無法回答tomcat/jetty的東西,但我用基於Python的web應用程序完成了類似的事情。
我通常只運行一個單獨的應用程序來完成所需的週期性任務。如果網站和應用程序之間需要互操作,那麼通過某種API(使用諸如XML-RPC/unix套接字/等等)甚至只是通過數據庫層就可以進行通信,如果這樣做足夠的話。
希望有所幫助。
如果想要在java端保留所有內容,請查看Quartz。
它處理故障轉移和細粒度的作業重新分區,具有cron作業的相同靈活性。
作爲Java的Quartz框架也直接集成到正在運行的應用程序服務器中,併爲您提供細粒度的控制,否則您很難用Java來實現Cron – 2009-01-19 02:52:22
石英聲音很好,但對我的目的來說有點矯枉過正。 – 2009-01-19 11:30:34
如果你想使用cron作業,但沒有到開發系統的管理權限,您可以通過執行命令做一個用戶的crontab:
crontab -e
它在默認情況下大多數系統使用VI ,但可以將其更改爲通過您選擇的編輯器:
export EDITOR=/usr/local/bin/my_editor
然後,執行的crontab -e命令將啓動crontab文件,在編輯器中。保存後,更改將被重新提交到系統的cron中。
- 1. 定期在後臺運行任務
- 2. 後臺運行服務器
- 3. 長期運行的後臺任務
- 4. Android服務定期在後臺執行任務嗎?
- 5. 在Play 2.4.2服務器中運行連續後臺任務
- 6. 使用c#.net的服務器後臺運行任務
- 7. 在後臺運行服務
- 8. 服務在後臺運行?
- 9. 在後臺運行python服務器
- 10. C#/ Mono在後臺運行服務器
- 11. 在後臺運行Webrick服務器?
- 12. 後臺任務只運行
- 13. 在Web服務器上運行內存密集型後臺任務
- 14. 在iOS中定期在後臺線程中運行任務
- 15. 在iOS8上以後臺模式運行週期性任務
- 16. Android - 定期後臺服務
- 17. Android定期後臺服務
- 18. fancybox在一臺服務器上運行,但不在另一臺服務器上
- 19. 是否有可能在後臺定期運行任務 - iOS 4
- 20. 運行後臺服務ruby
- 21. windows在多臺服務器上運行的服務
- 22. 定期長時間運行的後臺任務
- 23. 僅在一臺機器上運行芹菜週期性任務
- 24. Android:如何在後臺服務中定期運行AsyncTask
- 25. 在服務器上的後臺進程中運行進程
- 26. 在java web服務器上運行單獨的後臺進程
- 27. 替代後臺傳輸服務在後臺運行上傳
- 28. 如何找出在一臺服務器上運行在另一臺服務器上的Windows服務狀態?
- 29. 後臺任務不在UWP中運行
- 30. 在後臺運行任務iOS
只需在服務器上運行cron作業,無需讓它對您的應用執行wget。 – 2009-01-19 00:04:02