4

Quartz スケジューラを使用して、 cron 式を使用して Java でいくつかのジョブをスケジュールしていますが、特定のタイムスタンプが指定された cron 式内にあるかどうかを確認する必要があります。つまり、このcronでスケジュールされたジョブは、指定されたタイムスタンプで実行されますか?

この問題を解決するためにクォーツライブラリを使用することに限定されていないため、どのような解決策も歓迎します。

4

2 に答える 2

1

がある

日付 getFireTimeAfter(日付 afterTime)

トリガー インターフェイス。

t が確認したい時間である場合、次の発火時間 t-1 を確認できます。結果が t の場合、答えがわかります。

于 2013-09-15T12:06:10.607 に答える
0

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);
    
于 2013-09-20T09:57:05.427 に答える