Периодические задания
Сервисы СРМ и мониторинга выполняют регулярные фоновые задачи: рассылают накопленные события, чистят устаревшие данные, пересчитывают индикаторы здоровья. Периодичность запуска этих задач настраивается на странице Главная -> Настройки -> Система -> Периодические задания.
Страница разделена на вкладки по сервисам: СРМ и Мониторинг. Расписания хранятся в базе данных соответствующего сервиса, но управляются из одного места.
Что можно изменить
Изменить можно только периодичность запуска. Добавлять и удалять задачи через интерфейс нельзя: состав задач определяется версией системы, новые задачи появляются при обновлении сервисов.
На странице не отображаются:
- задачи планового обогащения СРМ — их периодичность задаётся вместе с самим планом на странице
Главная -> Настройки -> СРМ -> Планы обогащения; - задача физического удаления помеченных КЕ — она связана с настройкой
CI_DELETE_TIMEOUTсервиса СРМ.
Если в списке появилась задача без описания, а вместо названия показано системное имя, значит сервис обновлён до версии, о которой ещё не знает интерфейс. Периодичность такой задачи изменяется обычным образом.
Права доступа
Отдельных прав для страницы нет, используются права на глобальные настройки сервисов:
| Действие | Право |
|---|---|
Просмотр вкладки СРМ | system.settings.srm.@view |
Изменение расписаний на вкладке СРМ | system.settings.srm.@edit |
Просмотр вкладки Мониторинг | system.settings.monitoring.@view |
Изменение расписаний на вкладке Мониторинг | system.settings.monitoring.@edit |
Вкладка сервиса, на просмотр настроек которого нет прав, не отображается. Без права на изменение список доступен только для чтения.
Изменение расписания записывается в журнал действий пользователей (см. Журналы аудита).
Формат периодичности
Периодичность задаётся классическим выражением cron из пяти полей, разделённых пробелами:
* * * * * выполняемая задача
- - - - -
| | | | |
| | | | ----- день недели (0—6, 0 — воскресенье)
| | | ------- месяц (1—12)
| | --------- день месяца (1—31)
| ----------- час (0—23)
------------- минута (0—59)
В каждом поле допустимы:
- число —
5; - список чисел через запятую —
0,15,30,45; - диапазон через дефис —
1-5; - шаг —
*/10(каждые десять единиц) или0-30/10; *— любое значение.
Примеры:
| Выражение | Когда выполняется |
|---|---|
*/1 * * * * | каждую минуту |
*/15 * * * * | каждые 15 минут |
0 * * * * | раз в час, в начале часа |
0 3 * * * | ежедневно в 03:00 |
0 */6 * * * | каждые 6 часов |
30 2 * * 0 | по воскресеньям в 02:30 |
День недели нумеруется от 0 до 6, где 0 — воскресенье. Значение 7 не принимается.
Выражение проверяется при вводе и при сохранении. Некорректное выражение сохранить нельзя.
Значение по умолчанию
Для каждой задачи известно значение периодичности, с которым она поставляется. Кнопка По умолчанию в окне редактирования подставляет это значение в поле — чтобы применить его, нужно сохранить изменение.
Для задач, заведённых до появления этой страницы вручную, значение по умолчанию может отсутствовать. В этом случае кнопка неактивна и показывает подсказку.
Когда изменение вступает в силу
Планировщик перечитывает расписания из базы данных, поэтому перезапуск сервиса не требуется. Новая периодичность применяется не более чем через минуту после сохранения.
Задачи сервиса СРМ
| Задача | Системное имя | По умолчанию |
|---|---|---|
| Отправка накопленных событий СРМ в брокер сообщений | send_outbox_events | */1 * * * * |
| Проверка и актуализация сохранённых TQL-запросов | check_tqls | */1 * * * * |
| Удаление файлов, на которые не осталось ссылок | clean_orphan_files | */30 * * * * |
| Удаление объектов, связанных с удалёнными пользователями | clean_users | */30 * * * * |
| Удаление просроченных cookie из хранилища фетчеров | clean_expires_cookies | 0 * * * * |
| Удаление устаревших записей статистики обогащения | delete_old_statistics | 0 * * * * |
Задачи сервиса мониторинга
| Задача | Системное имя | По умолчанию |
|---|---|---|
| Отправка накопленных событий мониторинга в брокер сообщений | send_outbox_events | */1 * * * * |
| Обработка очереди пересчёта индикаторов здоровья | hi_outbox | */1 * * * * |
| Закрытие алертов с истёкшим сроком действия | alert_repair | */1 * * * * |
| Поддержание актуальности TQL-запросов шаблонов мониторинга | keep_alive_template_tql | */5 * * * * |
| Проверка консистентности индикаторов здоровья и их истории | check_hi_history | 0 */6 * * * |
| Удаление истории индикаторов здоровья и алертов старше заданного срока | history_cleanup | 0 3 * * * |
Глубина хранения истории для задачи history_cleanup задаётся переменной HISTORY_DELETE_DAYS сервиса мониторинга, размер порции для hi_outbox — переменной HI_OUTBOX_BATCH_SIZE (см. Cервис мониторинга).
Рекомендации
- Задачи разбора очередей (
send_outbox_events,hi_outbox,alert_repair) обрабатывают накопленное с прошлого запуска. Разрежение их расписания увеличивает задержку доставки событий и обновления индикаторов здоровья. - Тяжёлые задачи очистки (
history_cleanup,delete_old_statistics) лучше запускать в часы наименьшей нагрузки. - Не задавайте расписание, при котором очередной запуск начинается раньше, чем завершился предыдущий: задачи не выстраиваются в очередь, и запуски будут накладываться друг на друга.