如何在指定的時間(比如上午11:00)使用java.util.Timer
每天運行一項任務?我使用的是JDK 1.4.2,我知道這很舊,但這是項目需要的。如何從Java每天運行一項任務?
回答
石英是最知名的解決方案來安排在Java環境的過程,但你有很多選擇。檢查此列表:
Quartz是一個開放源代碼作業調度系統,可以與幾乎任何J2EE或J2SE應用程序集成在一起使用,或與其一起使用。 Quartz可以用來創建簡單或複雜的時間表。
Jcrontab設計用於擴展和與任何項目集成。讀取並存儲要在文件,數據庫或EJB中執行的任務,並提供Web UI和基本的揮杆GUI。
Essiembre J2EE Scheduler是J2EE應用程序的簡單任務調度機制。這個庫可以被認爲是標準Java API中的Timer和TimerTask類的封裝。要執行的任務的配置及其頻率是基於XML的。
cron4j是Java 2平臺的調度程序,它與UNIX cron守護進程非常相似。
Oddjob的目標是爲所有批量文件和cron作業提供一些命令和可見性,從而將企業的關鍵業務流程聯繫在一起。
Fulcrum Scheduler提供調度程序服務。它基於Turbine提供的TurbineScheduler,但所有舊的東西都已被刪除。目前只有非永久調度程序完成。它從組件config xml文件加載預定作業。
Gos4j-針對Java的面向目標的調度 - 是一種基於目標組織處理優先級的方法。
Job Scheduler是作爲惡魔運行的批處理程序,可以使用圖形用戶界面進行控制。 Job Scheduler爲預定程序,腳本以及任務處理的時間和頻率使用XML配置。一個API可用於控制事件並記錄到您的作業。
JDRing是一個輕量級的Java調度庫,它既簡單又小巧,但仍支持按指定間隔振鈴,作爲一次性事件或具有完全類似於cron的控制的複雜調度。
jBatchEngine是用Java編寫的批處理作業假脫機程序。與Cron這樣的時間驅動調度器相比,jBatchEngine是事件驅動的。
MyBatchFramework是一個開放源碼的輕量級框架,旨在創建輕鬆健壯且可管理的批處理程序,並將其轉換爲Java語言。
Super with SuperScheduler and SuperWatchdog是一款Java作業調度程序,它爲所有應用程序提供了豐富的GUI。它是平臺中立的。特別適合作爲Linux和Solaris的作業調度程序。它提供了Microsoft Windows Scheduler的超級功能。它提供事件觸發的時間安排。它可以在分佈式環境中安排任務。一項任務將在網絡中的所有機器中執行一次且僅執行一次。所有任務都是節日可調。即使每一份工作都是一份待命的工作,歷史將成爲重要工作的良好軌跡。它支持國際化。
查看TimerTask和Timer - 兩者都在該版本的JDK中。
Timer :
public void schedule(TimerTask task, Date firstTime, long period)
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
將其設置爲在一天內爲您的延遲運行,你要那麼毫秒數的第一次約會。
是否可以使用庫如cron4j?它會讓你的工作更輕鬆!
- Java定時器可以間隔,預先固定的時間等運行任意的作業等。
- Quartz庫
- 如果你真的想成爲它的骨頭,把它包裝在一個shell腳本中並放入cron中。
也許,近期後可以幫助你:
Will this pause my Java thread for a minute?
我對這個問題的反應是使用內置的基於java.util.Time和java.util.TimerTask中的類實現一個java: Will this pause my Java thread for a minute?
或者,您可以使用* nix平臺的crontab服務(也可用於Windows平臺)。這是定期運行獨立工作的最簡單和輕量級的風格。
[]的,
和過去的
快速crontab如何: http://www.crontabrocks.org/ []的和過去 – apast 2009-09-30 15:40:09
- 1. Spring Java - 運行進程每天執行一次任務
- 2. 我如何做背景任務,每天早上運行一次?
- 3. scala - 如何每天運行一個任務11PM
- 4. 運行任務週期性(每天一次/每週一次)
- 5. playframework每天與Akka運行任務
- 6. schtasks/create(有一項任務每天運行並且每小時重複
- 7. 的Java的TimerTask - 在XX運行任務:MM小時每天
- 8. 如何使用NServiceBus安排每天運行的任務
- 9. 每天執行一次任務
- 10. 如何在每次任務中運行一個capistrano任務?
- 11. Android - 創建一項每天運行一次的服務
- 12. 石英:每天運行一次任務,不按repeatInterval
- 13. 任務在Xamarin Forms上每天運行一次
- 14. 每天在同一時間運行sitecore計劃任務
- 15. Ruby on Rails每天運行一次任務
- 16. 在Android上每天運行計劃任務一次
- 17. 每天自動運行一個任務或代碼
- 18. 運行一個任務的天 - Android
- 19. 如何在Nodejs中每隔15天運行一次節點調度任務?
- 20. 如何讓Arduino在規定的時間每天執行一項任務?
- 21. 如何安排一個Java程序每天在Windows中運行?
- 22. 如何爲目錄中的每個文件運行java任務?
- 23. 如何安排C#Windows服務每天運行一個方法?
- 24. iOS每天運行一次
- 25. 如何運行一個春天項目
- 26. Android中每秒執行一項任務
- 27. 從MySQL查詢返回的每一行運行Celery任務?
- 28. 如何在時間13:00到13:00,每天例如運行我的項目,例如每天(在Java)
- 29. 每天午夜執行任務 - Grails 3.2.2
- 30. 在java中每週運行一次的計劃任務
這似乎是因是否該庫的可能性將被允許使用第二我 – 2009-09-30 15:37:04
這個建議 - cron4j是一種愉悅,並且用得好好的,比簡單得多石英(它也可以工作,它只是比較大,通常比你真正需要的要多;並且對於簡單的用例有一些扭曲) – StaxMan 2010-04-07 06:44:21