たとえば、2011年9月5日の午前11時に開始し、2012年6月10日の午前11時に終了するなど、2つの日付の間で毎日実行されるQuartz CronTrigger式を作成する方法はありますか?
3 に答える
毎日午前11:00を意味する式を使用します(例: "0 0 11 * *?")。
次に、トリガーのstartTimeを2011年9月5日午前10:59に設定し、トリガーのendTimeを2012年6月10日午前11:01に設定します。
単一のcron式では、関係する期間に関係なく、同じ期間タイプに対して異なるスケジュールを実行することは容易ではありません。異なるスケジュールは年の期間です。ただし、年の違いを除いて、他のすべての期間のスケジュールは同じです。したがって、次のcron式を使用します
。cron1= "0 0 23 5/1 SEP-DEC?2012"
cron2 = "0 0 23 1/1 JAN-JUN?2013"
スケジューラーは、2012年12月31日の午後11時0分以降、2013年1月1日の午後10時59.99時までに、cron1からcron2に切り替えることができます。スケジューラーがデータベースまたはどこかの構成からcron式を読み取っている場合は、毎日午後11時30分に新しいスケジュールで読み取らせます。cron式をデータベースに保存している場合は、以下のchron3を使用して、スケジューラーが特定のタスクのcron式をスワップアウトするようにスケジュールできます
。cron3= "0 0 0 1 JAN?2013"
Silly me:o)今日の日付は2013年3月13日なので、この回答は少し遅れると思います。
私が見つけた別の解決策は、スケジュールされたルートのルートポリシー(SimpleScheduledRoutePolicy)を指定し、このポリシーオブジェクトのRouteStartDateとsetRouteStopDateを設定することです。