Создание выражения Cron с днями и месяцами одновременно

Я просто хочу создать выражение cron, которое будет выполнять задание через «N» дней. Где N может быть любым числом больше нуля.

Итак, все в порядке, если число находится в диапазоне от 1 до 30. Например, выражение Cron для выполнения задания каждые 25 дней в 11:00 будет выглядеть так:

0 0 11 1/25 * ?  //'?' can only be specfied for Day-of-Month or Day-of-Week.

но если пользователь превысит этот предел, это означает, что нам придется выполнить задание через «M» месяцев и «D» дней.

Я не могу понять, как я могу указать и день, и месяц одновременно. Может ли кто-нибудь заставить меня понять, как я могу создать выражение cron для этого сценария. Вы можете предположить, что задание будет выполняться через каждые «65» дней.

Спасибо за ваше время.


person laam    schedule 30.12.2014    source источник


Ответы (1)


Короткий ответ: выражения cron не поддерживают то, что вы хотите сделать. Вам нужно будет предварительно обработать запрос пользователя и преобразовать его в соответствующее выражение cron или реализовать собственную процедуру синхронизации, которая может использовать cron за кулисами с некоторой дополнительной логикой. Другое предложение состоит в том, чтобы наложить некоторые ограничения на пользовательский API, которые позволят пользователю вводить время, удобное для cron, например, каждый месяц, каждую неделю, каждые 3 месяца и т. д.

person Sinsanator    schedule 30.12.2014