0

Windowsマシンに.batファイルがあり、Java実行可能ファイル(.Jar)のメインクラスを呼び出してプログラムを起動します。

今、私はこれを30分ごとに実行する必要があります。

私はそれを行ういくつかの方法を経験しましたが、どちらが良いかを決めることができませんでした。

WindowsスケジューラまたはJavaタイマーを使用したスケジューリング。どれを選ぶ?プロセスのインスタンスを1つだけ実行したい。前のプロセスが30分以内に完了しない場合は、待つことができます。

私のユースケースに基づいて、何をすべきか教えてください。

前もって感謝します。

4

2 に答える 2

0

Windowsスケジューラを使用することをお勧めします。プロセスに時間がかかりすぎるという本当のリスクがある場合は、ファイルを作成するか、プロセスの実行中にソケットを開いて、別のプロセスが起動しようとすると、それを検出して単に終了することができます。これにより、30mのウィンドウが「失われ」ます(つまり、最初のジョブが12に開始され、12:35に終了した場合、次のジョブは1まで開始されません)。

ただし、この方法では、長時間実行されるプロセスの設定、Javaサービスの開始と停止などについて、まったく心配する必要はありません。Windowsスケジューラを使用すると、このような場合にすべてが簡単になります。

于 2012-11-01T14:21:27.630 に答える
0

TimerTaskはスケジューリングシステムではなく、アプリ内スケジューリングのためのツールを提供するライブラリです。ユースケースにはシステムが必要なようです。アプリが実行されているかどうかに関係なく実行する必要があり、レポートが必要です。Windowsスケジューラ(またはunix / linuxのcron)がニーズに適しています。

于 2012-11-01T14:22:06.160 に答える