Система очередей — это сердце 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. Отслеживание глубины очереди – оповещение, если очередь становится слишком большой.
  2. Установите соответствующие приоритеты. Не злоупотребляйте приоритетом 1.
  3. Использовать пакетную обработку – групповые задачи.
  4. Разумно настраивайте повторы – сбалансируйте надежность и использование ресурсов.
  5. Архивируйте выполненные задачи – следите за чистотой очереди.

Поиск неисправностей

Задачи зависли в ОБРАБОТКЕ

Если задача зависла:

  1. Проверьте состояние моста
  2. Проверьте подключение SSH машины.
  3. Просмотрите журналы задач на наличие ошибок.
  4. При необходимости отмените вручную.

Большая очередь

Если очередь растет:

  1. Проверьте пропускную способность моста.
  2. Проверка ресурсов компьютера
  3. Увеличьте batch_size в конфигурации моста.
  4. Добавьте больше мостов или машин.

Сбои задач

Всегда проверяйте:

  1. Сообщение об ошибке задачи
  2. Журналы машины
  3. Целостность данных хранилища
  4. SSH-подключение

Подробную информацию см. в разделе Рекомендации.