我希望通过spring / cron设置时间表@Schedule
。
我的预定作业应在
4th weekday of every month at 19:00 hours.
不幸的是,我还没有看到可以通过W
上的Day of month
示例在一行cron条目中实现这一点的示例
平日(W)
“ W”字符用于月份的“天”字段。此字符用于指定最接近给定日期的工作日(星期一至星期五)。例如,如果您将15W指定为“月的一天”字段的值,则含义是最接近该月15日的工作日。因此,如果15号是星期六,那么触发器将在14号星期五触发。如果15日是星期日,则触发器将在16日星期一触发。但是,如果您指定1W作为月份的值,而1st是星期六,则触发器将在3号星期一触发,因为它不会跳过一个月日的边界。
在crontab中使用W可以执行上述时间表吗?
我收到此错误:
java.lang.NumberFormatException: For input string: "6W"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) ~[na:1.6.0_45]
at java.lang.Integer.parseInt(Integer.java:458) ~[na:1.6.0_45]
at java.lang.Integer.valueOf(Integer.java:554) ~[na:1.6.0_45]
at org.springframework.scheduling.support.CronSequenceGenerator.getRange(CronSequenceGenerator.java:362) ~[spring-context-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
at org.springframework.scheduling.support.CronSequenceGenerator.setNumberHits(CronSequenceGenerator.java:329) ~[spring-context-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
at org.springframework.scheduling.support.CronSequenceGenerator.setDays(CronSequenceGenerator.java:307) ~[spring-context-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
at org.springframework.scheduling.support.CronSequenceGenerator.setDaysOfMonth(CronSequenceGenerator.java:298) ~[spring-context-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
at org.springframework.scheduling.support.CronSequenceGenerator.parse(CronSequenceGenerator.java:271) ~[spring-context-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
at org.springframework.scheduling.support.CronSequenceGenerator.<init>(CronSequenceGenerator.java:96) ~[spring-context-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
at org.springframework.scheduling.support.CronSequenceGenerator.<init>(CronSequenceGenerator.java:83) ~[spring-context-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
at org.springframework.scheduling.support.CronTrigger.<init>(CronTrigger.java:44) ~[spring-context-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]