2016-04-25 6 views
0

特定の時間範囲を除いて、クォーツスケジューラを使用してスケジュールを設定します。特定の時間範囲を除いた石英スケジューラ

例:2AM - 午前3時と午後5時30分 - 午後5時45分

使用のcron表現とcronスケジューラなく、これを達成するための他の方法はありますか?

+0

なぜcronスケジューラを使いたくないのですか? また、私はあなたが成し遂げたいことを100%明確にしているわけではありません。あなたの例を言い換えることができますか? – dquijada

+0

@dquijada私はcronの表現にはうまくいかず、知りたいのですが、クォーツスケジューラの他のライブラリがこの仕事をすることができますか? 最後に、cron式が解析され、解析された値がオブジェクトの変数に設定されます。 同じことをするための設定メソッドがいくつかあるはずです。 –

答えて

1

これは、Quartzカレンダーが使用されているものです。特定の昼間のの範囲を除外する場合は、DailyCalendarを使用することをお勧めします。

1つのDailyCalendarで1日の時間範囲を除外できます。複数(2つ)の範囲を除外したいので、次のように2つのDailyCalendarsを組み合わせる必要があります:

// calendar that excludes the 2am-3am day time range 
DailyCalendar dc1 = new DailyCalendar(2,0,0,0,3,0,0,0); 

// calendar that excludes the 5:30pm-5:45pm day time range 
DailyCalendar dc2 = new DailyCalendar(17,30,0,0,17,45,0,0); 

// combine the two calendars so that both ranges are excluded by dc2 
dc2.setBaseCalendar(dc1); 

// register the calendar with the scheduler 
scheduler.addCalendar("MyExcludedDayTimeRangesCalendar", dc2, true, true); 

MutableTrigger trigger = ... create SimpleTrigger/CronTrigger/DailyTimeInterval/CalendarIntervalTrigger instance 

// associate the created trigger with the registered calendar - the trigger will exclude calendar's time ranges 
trigger.setCalendarName("MyExcludedDayTimeRangesCalendar"); 

... 
関連する問題