8

Java の ScheduledExecutorService は、一定の間隔または一定の遅延でタスクを繰り返す場合に非常に便利です。間隔ではなく、タスクをスケジュールする時刻を指定できる既存の ScheduledExecutorService のようなものがあるかどうか疑問に思っていました。つまり、「このタスクを毎日午前 10 時に起動したい」ということです。

Quartz でこれを実現できることはわかっていますが、可能であればそのライブラリを使用したくありません (これは優れたライブラリですが、いくつかの理由で依存関係は避けたいと思います)。

4

6 に答える 6

4

もう少し検索すると、HA-JDBC でCronExecutorServiceが見つかりました。興味深いことに、 CronExpressionクラスはQuartz に依存していますが、それだけです。それはそれほど悪くはありません。

更新: 新しいバージョンを指すように壊れたリンクを修正しましたが、それが唯一の依存関係であるかどうかはわかりません

于 2009-01-23T11:26:17.563 に答える
3

Timerクラスを使用できます。具体的には、scheduleAtFixedRate(TimerTask task, Date firstTime, long period) です。特定の日の午前 10 時に開始し、24 時間ごとに繰り返すようにタスクを設定できます。

于 2009-01-22T16:46:21.613 に答える
2

scheduleAtFixedRate を使用すると、遅延が発生します。したがって、遅延は午前 10 時までの差であり、期間は 24 時間です。タイマーを使用しても、これは少しドリフトする可能性があるため、実行できることは、毎回適切な遅延で ScheduledExecutorService に追加されるタスクをスケジュールすることです。

于 2009-01-22T20:26:32.980 に答える
1

JTクロン

http://jarretttaylor.com/java/jt-cron.html

于 2009-01-22T23:28:06.653 に答える