#javascript #cron
#javascript #cron
Вопрос:
Кто-нибудь знает о каких-либо существующих решениях, использующих javascript, которые могут анализировать crontab и возвращать все экземпляры datetime между заданной начальной и конечной датой?
т.е. если у меня есть 0 * * * *
начало 24/10/2011 16:00
и конец 24/10/2011 19:00
, то он вернется:
24/10/2011 16:00,
24/10/2011 17:00,
24/10/2011 18:00
Комментарии:
1. Crontag? Tpyo [так в оригинале]? Вы хотите проанализировать «* */4 * * * *»- введите записи crontab и превратите их в реальные даты / время?
2. Добавление в @MarcB, … или диапазон дат / времени?
3. Как я понимаю, входные данные: startdate, enddate и строка crontab. Выводом должно быть точное время, когда команда crontab будет выполняться между двумя заданными датами.
4. Да, точно, т.е. если у меня есть
0 * * * *
, начни24/10/2011 16:00
и закончи24/10/2011 19:00
, тогда он вернется24/10/2011 16:00, 24/10/2011 17:00, 24/10/2011 18:00
5. Обновлен вопрос на основе комментария OP.
Ответ №1:
Возможно, вы захотите проверить Later.js который может анализировать выражение Cron и вычислять следующие вхождения.
var schedule = cronParser().parse('* */5 * * * *', true);
var results = later(60).get(schedule, 100, startDate, endDate);
Комментарии:
1. в итоге я сам это написал, так что немного поздновато для меня, но выглядит неплохо! Спасибо
2. Это здорово, почему бы вам не поделиться этим в виде пакета?
3.
var schedule = later.parse.cron('* */5 * * * *', true); var results = later.schedule(schedule).next(100, new Date('2016-01-25'), new Date('2016-02-25') )
4. Совместимо ли это с планировщиком Java quartz cron? Мой вариант использования — использовать совместимый планировщик, чтобы cron-выражение могло использоваться серверной или интерфейсной частью для получения вхождения.
Ответ №2:
Это не очень помогает, но это начало. Есть некоторые решения на java (не javascript) и php, в которых есть приличный код, который вы хотели бы перевести и включить, если вы в конечном итоге напишете это самостоятельно.
Взгляните на эти два фрагмента кода:
http://www.phpclasses.org/package/2568-PHP-Parse-cron-tab-files-to-retrieve-job-schedules.html
HTH
Ответ №3:
Можно использовать cron-parser lib. Более подробная информация здесь