Quartz - 在一周和几天的某一天每两周安排一次工作 [英] Quartz - schedule jobs every two Weeks on several Day of week and time

查看:547
本文介绍了Quartz - 在一周和几天的某一天每两周安排一次工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要创建以下作业:


  • 启动12/20/2012

  • endDate = 12/31/2017

  • 将在星期日和星期一每2周发生一次

  • 在下午5点开火。

  • starts one 12/20/2012
  • endDate = 12/31/2017
  • will occur every 2 weeks on Sunday and monday
  • fires at 5 pm.

这个cron表达式有效吗?

is this cron expression valid?

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表达式进行单元测试。感谢 Van de Voorde Toni ,您可以根据此代码进行操作,并使用它来验证nextValidTimeAfter是否符合您的期望:

I suggest, that you make a unit test based on your cron expression. With kudos to Van de Voorde Toni, you can base it on this code, and use it to verify that the "nextValidTimeAfter" matches your expectation:

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

    }
}

这篇关于Quartz - 在一周和几天的某一天每两周安排一次工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆