2010-12-15 3 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 означает «огонь каждый второй день, начинающийся в первый день месяца». Значение cronExpression, например 0 0 12 1/2 * MON-FRI *, должно быть близко к тому, что вы хотите. Проверка с помощью

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

Смежные вопросы