Система очередей — это сердце Rediacc, управляющее распределением задач между машинами.
Обзор
Очередь управляет задачами со следующим жизненным циклом:
PENDING → ASSIGNED → PROCESSING → COMPLETED/FAILED/CANCELLED
Штаты
- В ОЖИДАНИИ — Задача создана и ожидает, пока ее подхватит мост.
- ASSIGNED — мост запросил задачу и готовится к выполнению.
- ОБРАБОТКА – задача в данный момент выполняется на компьютере.
- COMPLETED – задача успешно завершена.
- FAILED – в задаче произошла ошибка.
- ОТМЕНЕНО – задание отменено вручную.
Свойства задачи
Каждый элемент очереди имеет:
| Недвижимость | Тип | Описание |
|---|---|---|
taskId | УУИД | Уникальный идентификатор задачи |
статус | Перечисление | Текущее состояние выполнения |
приоритет | 1-5 | Приоритет выполнения (1 высший) |
retryCount | Номер | Оставшиеся повторные попытки |
хранилищеДанные | Объект | Конфигурация зашифрованной задачи |
выход | Строка | Выходные данные выполнения задачи |
ошибка | Строка | Сообщение об ошибке в случае неудачи |
созданоAt | Временная метка | Время создания задачи |
завершеноAt | Временная метка | Время выполнения задачи |
Система приоритетов
Задачи обрабатываются в приоритетном порядке:
- P1 (Критический) - Немедленное выполнение (чрезвычайная ситуация, безопасность)
- P2 (высокий) — выполнение в течение нескольких минут (развертывания)
- P3 (Нормальный) - Выполнение в течение нескольких часов (стандартные задачи)
- P4 (Низкий) - Фоновые работы (техническое обслуживание)
- P5 (Минимальный) — При наличии ресурсов (очистка)
Пример
# Create high-priority task
./rediacc create task \
--machine prod-01 \
--priority 1 \
--command "systemctl restart app"
Механизм повтора
Невыполненные задачи могут быть автоматически повторены:
{
"taskId": "550e8400-e29b-41d4-a716-446655440000",
"retryCount": 3,
"retryDelay": 30,
"maxRetries": 3
}
Настройте поведение повтора:
retryCount— количество оставшихся повторов.retryDelay— секунды между повторными попытками.maxRetries- Максимальное разрешенное количество повторных попыток.
Очередь мониторинга
Проверка статуса очереди
./rediacc list queue
./rediacc list queue --status PENDING
./rediacc list queue --team Production
Мониторинг конкретной задачи
./rediacc inspect queue task-123
Мониторинг в реальном времени
Используйте веб-консоль для обновления очереди и визуализации в режиме реального времени.
Данные хранилища
Задачи могут включать зашифрованную конфигурацию:
{
"vaultData": {
"function": "deploy",
"repository": "web-app",
"version": "1.2.3",
"environment": "production",
"credentials": {
"ssh_key": "[encrypted]",
"api_token": "[encrypted]"
}
}
}
Данные хранилища автоматически шифруются/дешифруются системой.
Пакетные операции
Эффективно обрабатывайте несколько задач:
# Get next 5 tasks
./rediacc list queue --limit 5
# Cancel multiple tasks
./rediacc cancel queue task-1 task-2 task-3 --confirm
Рекомендации по созданию очередей
- Отслеживание глубины очереди – оповещение, если очередь становится слишком большой.
- Установите соответствующие приоритеты. Не злоупотребляйте приоритетом 1.
- Использовать пакетную обработку – групповые задачи.
- Разумно настраивайте повторы – сбалансируйте надежность и использование ресурсов.
- Архивируйте выполненные задачи – следите за чистотой очереди.
Поиск неисправностей
Задачи зависли в ОБРАБОТКЕ
Если задача зависла:
- Проверьте состояние моста
- Проверьте подключение SSH машины.
- Просмотрите журналы задач на наличие ошибок.
- При необходимости отмените вручную.
Большая очередь
Если очередь растет:
- Проверьте пропускную способность моста.
- Проверка ресурсов компьютера
- Увеличьте
batch_sizeв конфигурации моста. - Добавьте больше мостов или машин.
Сбои задач
Всегда проверяйте:
- Сообщение об ошибке задачи
- Журналы машины
- Целостность данных хранилища
- SSH-подключение
Подробную информацию см. в разделе Рекомендации.