Java から毎日タスクを実行するにはどうすればよいですか?
質問
毎日指定した時間 (たとえば午前 11 時) にタスクを実行するにはどうすればよいですか? java.util.Timer
?私は JDK 1.4.2 を使用しています。古いことはわかっていますが、プロジェクトには必要なものです。
解決
クォーツは、Java環境でのプロセスをスケジュールするための最もよく知られているソリューションですが、あなたは多くのオプションを持っています。このリストをチェックします:
のクォーツのには、統合することができるオープンソースのジョブスケジューリングシステムであり、または側面に沿って事実上すべてのJ2EEまたはJ2SEアプリケーションを使用していました。クォーツは、単純または複雑なスケジュールを作成するために使用することができます。
の Jcrontab のには、任意のプロジェクトに拡張され、統合されるように設計されています。読み込み、ファイル、データベースまたはEJBで実行するタスクを格納し、Web UIと基本的なスイングのGUIを提供しています。
の Essiembre J2EEスケジューラのには、J2EEアプリケーションのための単純なタスクスケジューリングメカニズムであります。このライブラリは、標準のJava APIで見つかったタイマーとTimerTaskをクラスのラッパーと見なすことができます。タスクのための構成が実行されると、その頻度は、XMLベースです。
の cron4j のには、Java 2プラットフォーム用のスケジューラでありますUNIXのcronデーモンに非常によく似ています。
の Oddjob ののの目標です一緒に企業の重要なビジネス・プロセスを結びつけるすべてのバッチファイルとcronジョブに何らかの順序と可視性を提供します。
のフルクラムスケジューラののは、スケジューラーサービスを提供。これは、タービンを提供TurbineSchedulerに基づいていますが、すべての古いものは削除されました。現在、非永続的なスケジューラが実行されます。これは、コンポーネントの設定xmlファイルからのスケジュールされたジョブをロードします。
の Gos4j Java対応のためののの-Goal指向スケジューリングはの方法です目標に基づいて処理の優先順位を整理します。
のジョブスケジューラののは、悪魔として動作バッチプログラムでありますグラフィカルユーザインタフェースを用いて制御することができます。ジョブスケジューラは、スケジュールプログラム、スクリプトとタスク処理のタイミングや頻度のためのXML構成を使用しています。 APIは、あなたの仕事へのイベントとログの手が制御が利用可能です。
の JDRing ののは簡単です軽量のJavaスケジューリングライブラリーで、小さな、まだ1回限りのイベントとして、またはフルのcronのような制御を持つ複雑なスケジュールで、指定した間隔で鳴ったアラームをサポートしています。
の jBatchEngine のには、Javaで書かれたバッチジョブのスプーラです。 cronのような時間駆動スケジューラにconstrastでは、jBatchEngineはイベントが駆動されます。
の MyBatchFramework のにはに設計されたオープンソースの軽量フレームワークでありますJava言語に簡単に堅牢で管理しやすいバッチプログラムを作成します。
豊富でJavaジョブスケジューラであるのの SuperScheduler をSuperWatchdogすべてのアプリケーションのGUI。これは、プラットフォームに中立です。 LinuxおよびSolaris用のジョブ・スケジューラであることが特に良いです。これは、Microsoft Windowsのスケジューラの機能のスーパーセットを提供します。これは、イベントトリガスケジューリングを提供します。これは、分散環境でのタスクをスケジュールすることができます。タスクは、ネットワーク内のすべてのマシンの間で一度だけ実行されます。すべてのタスクは休日に調整可能です。でも、すべてのジョブがSTANDBYジョブで、歴史は重要なTASのために良いのトレースになりますKS。これは、国際化をサポートしています。
のソース:Javaでオープンソースのジョブスケジューラの
他のヒント
TimerTaskをしてタイマーに見て - の両方がJDKのバージョンである
。Timer :
public void schedule(TimerTask task, Date firstTime, long period)
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
あなたの遅延のように一日のミリ秒数をしたい最初の日を実行するように設定します。
それはあなたのようなライブラリを使用することは可能です cron4j の?それはあなたの仕事はずっと楽になります!
- Java タイマーは、間隔や事前に決められた時間などで任意のジョブを実行できます。
- 石英 図書館
- 本当に必要最低限のことを知りたい場合は、それをシェル スクリプトでラップし、cron に入れます。
あなたが使用する必要がクォーツする
私も最初の場所で水晶を起動するかを知ることはありません。
は、アプリケーションサーバーまたは類似した成果物を持っている場合は、そこクォーツジョブを設定し、それが特定の時点で、あなたのタスクを実行することができます。
たぶん、その最近のポストはあなたを助けます:
この分のための私のJavaスレッドを一時停止します。<? />
その質問に対する私の回答はjava.util.Timeとjava.util.TimerTaskクラスに基づく実装で構築されたJavaを使用しています: は、この分のための私のJavaスレッドを一時停止するのだろうか? の
または、(Windowsプラットフォームで利用可能な、あまりにも)* nixプラットフォームのためのcrontabサービスを使用することができます。これは、定期的にスタンドアロンのジョブを実行する最も簡単かつ軽量のスタイルです。
[] 'sを、
過去