Выражение Cron для предпоследнего дня недели месяца

Я хочу активировать предпоследний день недели месяца.

Обычно это последняя пятница месяца (например, 30.06.2017).

0 0 0 ? * FRIL 

И я хочу предпоследний (например: 23.06.2017)

0 0 0 ? * FRIL-1 

Но этот синтаксис возвращает тот же результат, что и раньше (с планировщиком Quartz и с cronmaker).

Предпоследний день недели месяца может отображаться как на 3-й, так и на 4-й неделе месяца. Так что это :

either : 0 0 0 ? * FRI#3 
or     : 0 0 0 ? * FRI#4 

У тебя есть какой-нибудь совет ?


person Didi Bear    schedule 27.06.2017    source источник


Ответы (1)


Я не думаю, что вы можете выразить это с помощью синтаксиса cron.
Я могу придумать некоторые обходные пути:

  • Вы можете запланировать свою работу каждую пятницу и иметь некоторую логику работы, чтобы проверить, действительно ли она предпоследняя, ​​прежде чем продолжить.

  • Другой вариант - создать фиктивный триггер cron для прошлой пятницы, получить «время следующего срабатывания», вычесть 7 дней из этой даты и создать фактический триггер, используя эту точную дату - но вам придется делать это для каждой неделю (либо предварительно составив расписание для нескольких триггеров, либо перенеся свое задание после каждого запуска).

person walen    schedule 28.06.2017