2011-09-05 49 views
2

有没有办法编写一个在两个日期之间每天运行的Quartz CronTrigger表达式,例如从2011年9月5日上午11点开始,到2012年6月10日上午11点结束?在两个日期之间的石英CronTrigger表达式

+1

http://stackoverflow.com/questions/704927/does-cron-expression-in-unix-linux-allow-specifying-exact-start-and-end-dates –

回答

1

使用表达式表示每天上午11点例如“0 0 11 * *?”。

然后将触发器的startTime设置为2011年9月5日10:59 am,并将触发器的endTime设置为2012年6月10日上午11:01。

0

我发现的另一个解决方案是为预定路线指定路线策略(SimpleScheduledRoutePolicy),并为此策略对象设置RouteStartDate和setRouteStopDate。

0

单个cron表达式并不便于为同一期间类型运行不同的计划,不管哪个时间段,您的不同计划是年份期间。 但是,除了您的年差,其他所有时间段都有相同的时间表。因此,使用这些表达式的cron ...:

cron1 = “?0 0 23 5/1 SEP-DEC 2012”
cron2 = “?0 0 23 1/1 16月2013”​​

您可以切换调度程序在12/31/2012的晚上11点00分之后但在2013年1月1日10点59分之前的某个时候使用cron1到cron2,尽管我不会像这里显示的那样将它切得太近。如果您的调度程序正在从数据库或某个配置中读取其cron表达式,则只需在每天晚上11:30以新的时间表读取它。如果你在数据库中存储你的cron表达式,你可以安排一个调度程序使用下面的chron3替换你的特定任务的cron表达式:

cron3 =“0 0 0 1 JAN?2013”​​

傻傻的我:o)今天的日期是2013年3月13日,所以我相信这个答案对你来说有点迟了!