複数のタイマータスクを管理する方法についてのガイダンスを探しています。タイマーを動的に作成できるようにしたいのですが、各タイマーが終了すると、タイマーは自動的にリセットされます。
例:
タイマー1-アクションxを実行-30分後にアクションxを再度実行するようにリセット
タイマー2-アクションyを実行します-10分後に再びパフォーマンスアクションyにリセットします
必要なのはScheduledExecutorServiceです。
これにより、タスクを特定の時間または特定のレートで実行するようにスケジュールできます。
次のコードはタイマーを作成し、500ミリ秒の初期遅延の後1000ミリ秒ごとに実行します。この方法で、2つ以上のタイマーを簡単に定義できます。
TimerTask task = new TimerTask() {
@Override
public void run() {
System.out.println( "exec" );
}
};
new Timer().scheduleAtFixedRate( task, 500, 1000 );
おそらく、 Quartz Enterprise Job Schedulerを確認する価値があるかもしれません
Quartz は、最小のスタンドアロン アプリケーションから最大の e コマース システムまで、ほぼすべての J2EE または J2SE アプリケーションと統合したり、一緒に使用したりできる、フル機能のオープン ソース ジョブ スケジューリング システムです。Quartz を使用して、数万、数百、さらには数万のジョブを実行するための単純または複雑なスケジュールを作成できます。タスクが標準 Java コンポーネントまたは EJB として定義されているジョブ。