2010-12-15 187 views
3

我不知道下面的表達是正確的:這個cronExpression是否正確?

<property name="cronExpression" value="0 0 12 2 * MON-FRI ?"/> 

我嘗試配置了扳機射擊每月每隔一天,不管這一年,中午,和星期幾有介於星期一和星期五之間。

我真的很感激,如果有人能幫助我。提前致謝。

+0

你的意思是「每隔一天」或「每月的第二天」(這你cronExpression建議)? – Jonik 2012-09-26 09:54:02

回答

3

您不能同時指定月份和星期幾 - 不受支持。

3

我假設你的意思是「每隔一天(隔日),只要它是MON-FRI」。

根據Quartz CronTrigger Tutorial:中日的日場

「1/3」的意思是「火,每3天 開始一個月的第一天」。

因此,1/2將意味着「從每月的第一天開始每隔一天開火」。像0 0 12 1/2 * MON-FRI *這樣的cronExpression應該接近你想要的。用

org.quartz.CronExpression.isValidExpression("0 0 12 1/2 * MON-FRI *") 

...表示表達式是有效的。

然而,測試它遠一點有:

CronExpression e = new CronExpression("0 0 12 1/2 * MON-FRI *"); 
e.isSatisfiedBy(new DateTime(2012, 9, 26, 12, 0, 0, 0).toDate()); 

...拋出異常:

> Exception in thread "main" java.lang.UnsupportedOperationException: 
> Support for specifying both a day-of-week AND a day-of-month parameter 
> is not implemented. 

所以,好像jhouse is right,你就不能做到這一點用cronExpression

也許會有這樣的一個解決方法工作:Quartz cron expression for cron triggers executed every Nth Hour/Day/Week/Month