如何使用 spring 启动验证 cron 作业
How to validate cron job with spring boot
我想要一个 cron 作业,每个 00:10 am
执行一次
根据在线验证器,这是正确的表达式“0 0/10 0/00 ? * * *”
但它有'? spring 拒绝了。
如何正确验证我的 cron 作业?我的假设是这应该工作 '0 0/10 0/00 * * *' 但它没有,请有人能指出我正确的方向吗?我究竟做错了什么 ?我想在午夜后 10 分钟有一个任务
@Transactional
@Scheduled(cron = "0 0/10 1/00 * * *")
public void invalidateOutdatedPolicies() {
InsurancePolicyStatus policyStatus =
System.out.println("Scheduled task done");
}``
你可以像这样验证模式
public class ValidateCrontab {
public static void main(String[] args) {
// {second} {minute} {hour} {day} {month} {week} {year (optional)}
// Second time, day, month and week, these 6 items are mandatory.
CronSequenceGenerator cron1 = new CronSequenceGenerator("0 05 10 23 * ?");
CronSequenceGenerator cron2 = new CronSequenceGenerator("0 05 08 ? * MON-FRI");
Calendar cal = Calendar.getInstance();
//cal.add(Calendar.DATE, 2); // add two days to current date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");
System.out.println("current date " + sdf.format(cal.getTime()) +"\n ----");
System.out.println("Next cron trigger date cron1 " + cron1.next(cal.getTime()));
System.out.println("Next cron trigger date cron2 " + cron2.next(cal.getTime()));
}
}
我想要一个 cron 作业,每个 00:10 am
执行一次根据在线验证器,这是正确的表达式“0 0/10 0/00 ? * * *” 但它有'? spring 拒绝了。
如何正确验证我的 cron 作业?我的假设是这应该工作 '0 0/10 0/00 * * *' 但它没有,请有人能指出我正确的方向吗?我究竟做错了什么 ?我想在午夜后 10 分钟有一个任务
@Transactional
@Scheduled(cron = "0 0/10 1/00 * * *")
public void invalidateOutdatedPolicies() {
InsurancePolicyStatus policyStatus =
System.out.println("Scheduled task done");
}``
你可以像这样验证模式
public class ValidateCrontab {
public static void main(String[] args) {
// {second} {minute} {hour} {day} {month} {week} {year (optional)}
// Second time, day, month and week, these 6 items are mandatory.
CronSequenceGenerator cron1 = new CronSequenceGenerator("0 05 10 23 * ?");
CronSequenceGenerator cron2 = new CronSequenceGenerator("0 05 08 ? * MON-FRI");
Calendar cal = Calendar.getInstance();
//cal.add(Calendar.DATE, 2); // add two days to current date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");
System.out.println("current date " + sdf.format(cal.getTime()) +"\n ----");
System.out.println("Next cron trigger date cron1 " + cron1.next(cal.getTime()));
System.out.println("Next cron trigger date cron2 " + cron2.next(cal.getTime()));
}
}