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

我需要创建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; 

请指教。

我建议你根据你的cron表达式进行unit testing。 感谢Van de Voorde Toni ,您可以根据此代码进行操作,并使用它来validation“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); } }