Политика запуска

Политика запуска позволяет контролировать поведение задач, когда новое выполнение запускается до завершения предыдущего. Это критически важно для задач, которые не должны выполняться параллельно.

Режимы запуска

allow (по умолчанию)

Разрешает параллельное выполнение. Новые экземпляры запускаются независимо от состояния предыдущих.

skip

Пропускает новое выполнение, если задача уже выполняется. Используется когда важно не допустить дублирования работы.

queue

Добавляет новое выполнение в очередь. После завершения текущего экземпляра, следующий из очереди запускается автоматически.

Параметры

ПараметрТипОписание
overlap_policystringПолитика: allow, skip, queue
max_instancesintegerМакс. параллельных экземпляров (1-10)
max_queue_sizeintegerМакс. размер очереди (1-100)
execution_timeoutintegerТаймаут в секундах для авто-освобождения

Пример использования

curl -X POST https://api.cronbox.ru/v1/cron-tasks \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Синхронизация базы данных",
    "url": "https://your-api.com/sync",
    "method": "POST",
    "cron_expression": "*/5 * * * *",
    "overlap_policy": "skip",
    "max_instances": 1,
    "execution_timeout": 300
  }'

API очереди

GET
/queue

Список задач в очереди

DELETE
/queue/{id}

Удаление из очереди

GET
/overlap-stats

Статистика перекрытий

Метрики

CronBox отслеживает следующие метрики для overlap prevention:

  • executions_skipped - количество пропущенных выполнений
  • executions_queued - количество выполнений добавленных в очередь
  • overlap_rate - процент перекрытий
  • running_instances - текущее количество запущенных экземпляров

Важно: При использовании политики queue, убедитесь что ваша задача завершается в разумное время. Используйте execution_timeout для автоматического освобождения зависших экземпляров.