Quartz スケジューラを使用して、 cron 式を使用して Java でいくつかのジョブをスケジュールしていますが、特定のタイムスタンプが指定された cron 式内にあるかどうかを確認する必要があります。つまり、このcronでスケジュールされたジョブは、指定されたタイムスタンプで実行されますか?
この問題を解決するためにクォーツライブラリを使用することに限定されていないため、どのような解決策も歓迎します。
Quartz スケジューラを使用して、 cron 式を使用して Java でいくつかのジョブをスケジュールしていますが、特定のタイムスタンプが指定された cron 式内にあるかどうかを確認する必要があります。つまり、このcronでスケジュールされたジョブは、指定されたタイムスタンプで実行されますか?
この問題を解決するためにクォーツライブラリを使用することに限定されていないため、どのような解決策も歓迎します。
がある
日付 getFireTimeAfter(日付 afterTime)
トリガー インターフェイス。
t が確認したい時間である場合、次の発火時間 t-1 を確認できます。結果が t の場合、答えがわかります。
Calendarインターフェースには、タイムスタンプが Calendar に「含まれている」かどうかを確認するために必要なメソッドしかないため、CronTrigger は指定されたタイムスタンプで起動します。
boolean includedisTimeIncluded(long timeStamp)
Inherited Trigger メソッドを使用して、CronTrigger からカレンダー名を取得できます。
String calendarName = myTrigger.getCalendarName();
次に、Scheduler インスタンスからCalendarを取得し、タイムスタンプを確認します。
Calendar cal = sched.getCalendar(calendarName);
boolean willFire = cal.includedisTimeIncluded(timeStampToCheck);