2012-12-20 1 views
5

のいくつかの日にスケジュールジョブ隔週:クォーツ - 私はその意志ジョブを作成する必要があります週と時間

  • 開始1 2012年12月20日
  • endDateに= 2017年12月31日
  • は、日曜日および月曜日に2週間ごとに発生します。
  • 午後5時に発生します。

このcron式は有効ですか?

Date start = 12/20/2012; 
Date endDate = 12/31/2017; 
SimpleTrigger trigger = newTrigger() 
    .withIdentity("trigger3", "group1") 
    .startAt(startDate) 
    .withSchedule(cronSchedule("* * 17 0 0/2 *,SUN,MON").build()) 
    .endAt(endDate) 
    .build; 

助言してください。

+1

私はセットアップする* * 17 0 0/2 *、SUN、MON – Mukus

+0

を考えます毎週日曜日と月曜日の午後5時に発生するcronジョブは、0 =分、17 =時間、* =日、* =月、0,1 =日曜日、月曜日または曜日日曜日は0、土曜日は7となります。 これで2週間ごとに設定する方法は考えられません。月と日の曜日を同時に使うことはできないと思います。そうでないかもしれない。 – Mukus

+0

これを把握できましたか?それを達成するために他のツールを使用しましたか? – user2023507

答えて

1

あなたのcron式に基づいてユニットテストを行うことをお勧めします。 Van de Voorde Toniへの賛辞を使用すると、このコードでそれをベースにし、「nextValidTimeAfterは」あなたの期待と一致することを確認するためにそれを使用することができます:

import java.text.ParseException; 
import java.util.Date; 

import org.quartz.CronExpression; 

public class CronTester { 

    public static void main(String[] args) throws ParseException { 
     final String expression = "* * 17 0 0/2 *,SUN,MON"; 
     final CronExpression cronExpression = new CronExpression(expression); 

     final Date nextValidDate1 = cronExpression.getNextValidTimeAfter(new Date()); 
     final Date nextValidDate2 = cronExpression.getNextValidTimeAfter(nextValidDate1); 

     System.out.println(nextValidDate1); 
     System.out.println(nextValidDate2); 

    } 
} 
+0

このcron式は無効です。 cronMaker.comで試してみてください –

関連する問題