Quartz - 在一周和几天的某一天每两周安排一次工作

dan*_*nik 5 java cron quartz-scheduler java-ee

我需要创建Job,它将:

  • 2012年12月20日开始
  • endDate = 12/31/2017
  • 将在周日和周一每两周举行一次
  • 下午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;
Run Code Online (Sandbox Code Playgroud)

请指教.

tbs*_*ing 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);

    }
}
Run Code Online (Sandbox Code Playgroud)