0.90.0
Added
- Параметр
timezoneв cron-tool — агент может указать IANA-таймзону (например,Europe/Moscow) для cron-выражений и одноразовых задач. Ранее — всегда UTC. - Параметр
every(string duration) в cron-tool — вместоevery_seconds: 86400можно передатьevery: "24h". Старый параметрevery_secondsсохранён для обратной совместимости. - Пресеты расписаний в WebUI — кнопки быстрого выбора для cron («Ежедневно в 09:00», «Будни в 09:00», «Каждые 15 минут» и т.д.) и для every («5 минут», «1 час», «24 часа»).
- Human-readable описание расписания в списке задач WebUI — вместо сырого
cron: 0 9 * * 1-5показывается «Будни в 09:00». datetime-localpicker для одноразовых задач (типat) — вместо текстового поля теперь нативный календарь/время.- Формат
datetime-local(без секунд) поддерживается при парсинге выражений типаat. - Функции
DescribeCronExprиDescribeEveryExprв cron-пакете — human-readable описание расписаний на русском.
Fixed
- Race condition в
executeJob— добавлен мьютексrunningMu, предотвращающий параллельное выполнение одной и той же задачи при длинных запусках (>10 сек). RunHistoryне заполнялся — при каждом выполнении cron-задачи теперь записывается история (время, ошибка) до 20 записей. Ранее поле всегда оставалось"[]".last_errorне очищался при включении задачи — Toggle сenabled=trueтеперь сбрасываетlast_errorи пересчитываетnext_run_at.last_errorне обновлялся черезUpdateCronJob— SQL-запросы в SQLite и PostgreSQL обновляют поле.