Планировщик фоновых процессов RX не смог обработать задания
«Error occured for tenant», «Cannot handle expired job», «Cannot update job» и «Cannot create job» в логах планировщика Directum RX: фоновые процессы не запускаются по расписанию. Чаще всего внутри ошибка базы данных, реже фон после простоя.
Что это значит
Сервис планировщика (JobScheduler) следит за расписанием фоновых процессов и отправляет задания на выполнение. Error occured for tenant это общая запись о том, что цикл обработки для системы (tenant) завершился ошибкой. Причина внутри, и чаще всего это ошибка базы данных, например 57P01: terminating connection due to administrator command или 57P03, когда база перезапускалась.
Cannot handle expired job пишется, когда планировщик находит задание, срок которого прошёл, пока он не работал: например, после простоя сервиса или базы. Cannot update job и Cannot create job значат, что планировщик не смог записать состояние задания. Configure all jobs in queue: exception occured пишется при запуске планировщика, когда он не смог прочитать очередь заданий: внутри обычно таймаут RabbitMQ.
Как проверить
- Прочитать исключение внутри записи. Если там ошибка PostgreSQL, сверить время с перезапуском или переключением базы: 57P01, recovery mode.
- Работают ли фоновые процессы сейчас: в RX посмотреть время последнего запуска нужных процессов.
- Не повторяется ли ошибка каждые несколько секунд без перерыва: тогда планировщик застрял.
Что сделать
- Если ошибки пришлись на время недоступности базы и прекратились, достаточно проверить, что фоновые процессы снова запускаются.
- Если планировщик продолжает писать ошибки при живой базе, перезапустить сервис JobScheduler.
- Тревогу ставить не на сами записи, а на то, что важный фоновый процесс давно не запускался.
Ошибка повторяется?
Запустите Диагностика: за полминуты он покажет состояние базы, брокера, поиска и сервера. С отчётом разберём причину за 30 минут бесплатного созвона.
Написать