1.8 KiB
Планировщик
Модуль scheduler собирает фоновые задачи разных модулей в одном месте. Он не
требует CLI: панель показывает защищённый HTTP URL, который можно вызывать из
планировщика хостинга раз в минуту.
В разделе Модули → Планировщик доступны расписание, включение задачи,
ближайший запуск, ручной запуск и журнал. Cron-выражение состоит из пяти частей:
минута час день месяц день-недели. Например, */15 * * * * — каждые 15 минут.
Модуль регистрирует задачу фильтром scheduler.tasks:
public static function tasks(array $payload)
{
$payload['tasks']['my_module.cleanup'] = array(
'title' => 'Очистка данных',
'description' => 'Удаляет устаревшие записи.',
'module' => 'my_module',
'cron' => '30 3 * * *',
'timeout' => 120,
'handler' => array(Cleanup::class, 'run'),
);
return $payload;
}
Обработчик получает task, trigger и run_id. Он может вернуть массив с
message и метриками. Параллельный запуск одной задачи блокируется. События
scheduler.task.started, scheduler.task.completed и scheduler.task.failed
позволяют подключить уведомления или собственный аудит.
После смены секретного URL старый адрес сразу перестаёт работать.