В прошлом материале автор выкатил cronsense — либу, которая жрёт расписание на русском или английском и переводит его в cron: «по будням в 9:30» →
30 9 * * 1-5. Хабр в ответ устроил ей тест-драйв и быстро вскрыл дыры: «полвторого», «без пяти шестнадцать», «каждые полчаса» она не переваривает. Плюс всплыли таски, где cron вообще мимо.За считаные дни прилетело семь версий. Теперь одна фраза уходит либо в cron, либо в RRULE для календарей, либо в таймер systemd, а праздники можно звать по имени. Под «последний рабочий день месяца» родилась вторая либа — prodcalendar: производственный календарь РФ, который сам обновляется в npm. И по ходу дела прогон против rrule.js и systemd-analyze вытащил баги, о которых автор даже не догадывался.
Песочница. Прочитать до Нового года
👉 JS
