Воркеры — это компоненты платформы, которые обрабатывают задачи из очереди в фоновом режиме. Они обеспечивают асинхронное выполнение различных операций, таких как:
- Синхронизация данных из источников данных.
- Запуск действий и процессов.
- Проверки статуса сущностей.
Воркеры работают независимо от основного приложения и позволяют масштабировать нагрузку на систему, перенося ресурсоёмкие операции на выделенные реплики.
Конфигурация
Воркеры настраиваются через конфигурацию платформы. Доступны следующие параметры:
Количество реплик
Параметр workers.replicas определяет количество одновременно работающих воркеров. Каждый воркер может обрабатывать задачи независимо от других.
Максимальное количество параллельных задач
Параметр workers.maxTasks определяет, сколько задач может обрабатываться параллельно каждым воркером.
Общее количество задач, обрабатываемых одновременно всей системой, рассчитывается как workers.replicas × workers.maxTasks. Например, при 2 воркерах и 10 задачах на каждый воркер, система может обрабатывать до 20 задач одновременно.
Мониторинг
Для мониторинга работы воркеров и очереди задач доступен виджет Очередь задач (подробнее), который отображает:
- Размер очереди (общее количество задач).
- Количество ожидающих задач.
- Количество активных воркеров (консьюмеров).
- Детальную информацию о задачах в очереди.
- Статус каждой задачи (новая, в обработке).
Настройка через переменные окружения
Параметры воркеров также можно настроить через переменные окружения:
WORKER_MAX_TASKS— максимальное количество параллельных задач на воркер (по умолчанию: 10).
Пример применения настроек:
export WORKER_MAX_TASKS=15Приоритет настроек:
- Значение из конфигурационного файла.
- Значение из переменной окружения.
- Значение по умолчанию.
Типы обрабатываемых задач
Воркеры обрабатывают следующие типы задач:
Задачи проверки статуса сущностей
Задачи проверки статуса выполняются воркерами, которые определяют состояние сущностей на основе настроенных правил. Такой подход позволяет:
- Снизить нагрузку на основной сервер.
- Обеспечить стабильность работы при большом количестве сущностей.
- Гарантировать выполнение проверок даже при высокой нагрузке на основное приложение.
Задачи синхронизации источников данных
Воркеры обрабатывают задачи синхронизации данных из внешних источников, что позволяет:
- Выполнять синхронизацию в фоновом режиме.
- Не блокировать интерфейс пользователя.
- Обрабатывать большие объемы данных.
Задачи выполнения действий
Действия, требующие длительного выполнения, обрабатываются воркерами, что обеспечивает:
- Асинхронное выполнение действий.
- Возможность отслеживания прогресса выполнения.
- Стабильность работы интерфейса.
Масштабирование
При необходимости увеличения производительности системы можно:
- Увеличить количество реплик воркеров — это позволит обрабатывать больше задач одновременно
- Увеличить количество параллельных задач на воркер — это повысит утилизацию каждого воркера
При увеличении нагрузки на воркеры необходимо убедиться, что у кластера достаточно ресурсов (CPU, память) для обработки всех задач.
Устранение неполадок
Воркеры не обрабатывают задачи
Если задачи накапливаются в очереди и не обрабатываются:
- Проверьте, что воркеры развернуты и работают (через виджет «Очередь задач»).
- Убедитесь, что количество реплик воркеров больше 0.
- Проверьте логи воркеров на наличие ошибок.
- Убедитесь, что у воркеров достаточно ресурсов (CPU, память).
Медленная обработка задач
Если задачи обрабатываются медленно:
- Увеличьте количество реплик воркеров.
- Увеличьте количество параллельных задач на воркер (если позволяет ресурсная база).
- Проверьте производительность внешних систем, с которыми работают воркеры.
- Убедитесь, что нет узких мест в сети или базе данных.