6

次のジョブを作成する必要があります。

  • 2012 年 12 月 20 日開始
  • 終了日 = 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;

お知らせ下さい。

4

1 に答える 1

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);

    }
}
于 2013-01-25T11:16:44.017 に答える