summaryrefslogtreecommitdiffstats
path: root/library/cpp/cron_expression/cron_expression.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix L-N day-of-month crossing a month boundarybez-tch9 days1-1/+4
| | | | | | | | | | | | | | | | | | | | | **Проблема** TCronExpression::CronNext/CronPrev бросал `library/cpp/cron_expression/cron_expression.cpp: Requested date does not exist` для валидного выражения вроде `59 59 23 * *` (UTC) в определённые даты (например, когда now = 30 июня → следующее срабатывание должно быть 30 июля 23:59:59). **Причина** В DoNextPrev шаг по дню месяца определяет, изменилась ли дата, сравнивая только номер дня (value == updateValue). Однако FindDay может перевести календарь через границу месяца/года, попав при этом на тот же номер дня (30 июня → 30 июля, в обоих случаях день 30, потому что `` — это фиксированное смещение от конца месяца). Цикл тогда считает, что ничего не изменилось, пропускает continue, который пере-резолвит секунды/минуты/часы, и оставляет поля времени, которые FindDay уже сбросил в 00:00:00. Финальная проверка консистентности отклоняет 00:00:00 относительно second=\{59\} и бросает исключение. Это было замаскировано, потому что существующие тесты используют \* для полей времени, где 00:00:00 — валидное совпадение. **Фикс** Сохраняем месяц/год до вызова FindDay и требуем, чтобы они остались неизменными (в дополнение к номеру дня), прежде чем считать день окончательным; иначе — перезапускаем цикл. Затрагивает оба направления. commit_hash:62055eed169ba210e81c89aab860301f3e445f46
* Use CRON to set the schedule of queues exportPavel Bashkirov2025-06-261-0/+1199
# Description Currently the interval of queues export can only be set as "Every N units". This sometimes does not work well as it always starts the count from the time `0` (January 1st, 1970). It means that, for instance, if the customer wants to set an export to "Every week", it will happen every Thursday. This PR fixes the problem by providing a CRON way to set the schedule which is proven to be very flexible and meeting (almost) any requirement the user may have. * Changelog entry Type: feature Component: queue-agent Support CRON schedules for queue exports. --- Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1239 Co-authored-by: apachee <[email protected]> Co-authored-by: apachee <[email protected]> Co-authored-by: apachee <[email protected]> Co-authored-by: apachee <[email protected]> Co-authored-by: apachee <[email protected]> commit_hash:6a536f5edc17b3ad8d2243d55d876994141d38b0