Консольные утилиты¶
Celery beat¶
Процесс планирования периодических задач.
Позволяет планировать и исполнять задачи по расписанию.
- Команда: - tnx-scheduler-beat 
- Имя службы systemd: - tionix-scheduler-beat.service 
| Наименование | Описание | Значение по умолчанию | 
|---|---|---|
| --debug | Аргумент позволяет запустить сервис в режиме DEBUG. | False | 
| --logfile | Путь к файлу для логирования. | /var/log/tionix/scheduler/beat.log | 
Отказоустойчивость Celery beat¶
В случае запуска нескольких beat-процессов (в том числе на разных серверах), настроенных на одну и ту же базу данных и сервер RabbitMQ, будет работать следующий алгоритм синхронизации задач:
- Один из beat-процессов определяет, что задача готова по расписанию к отправке в очередь для обработки worker процессами;
- Beat-процесс создает в брокере сообщений очередь с атрибутом exclusive (данный атрибут включает запрет подключения к очереди более одного клиента и автоматически удаляет очередь после закрытия подключения). Название очереди соответствует данному экземпляру задачи - celery_beat_{task_id}_{run_count_id}.mutex. Где:- task_id- ID задачи;
- run_count_id- Количество выполненных запусков задачи. Если задача не выполнялась значение параметра 0.
 
- Если в данный момент эту же задачу пытается обработать другой beat-процесс, то по ошибке подключения к exclusive-очереди определяется, что задача уже находится в обработке и данная задача не отправляется повторно в очередь;
- Первый beat-процесс отправляет экземпляр задачи в очередь обработки, делает принудительную синхронизацию с базой данных для того, чтобы обновить у задачи значение total_run_count- количество запусков задачи и закрывает подключение к exclusive-очереди;
- Если после этого какой-либо другой beat-процесс попытается обработать эту же задачу, то он сверяет run_count_idс текущим сохраненным в базу данныхtotal_run_countи не обрабатывает повторно задачу, если она уже выполнялась с текущим для данного beat процессаrun_count_id.
Celery worker¶
Процесс обработки периодических задач. Следит за появлением задач в очереди запланированных задач и исполняет их.
- Команда: - tnx-scheduler-worker 
- Имя службы systemd: - tionix-scheduler-worker.service 
| Наименование | Описание | Значение по умолчанию | 
|---|---|---|
| --debug | Аргумент позволяет запустить сервис в режиме DEBUG. | False | 
| --logfile | Путь к файлу для логирования. | /var/log/tionix/scheduler/worker.log |