Политика запуска
Политика запуска позволяет контролировать поведение задач, когда новое выполнение запускается до завершения предыдущего. Это критически важно для задач, которые не должны выполняться параллельно.
Режимы запуска
allow (по умолчанию)
Разрешает параллельное выполнение. Новые экземпляры запускаются независимо от состояния предыдущих.
skip
Пропускает новое выполнение, если задача уже выполняется. Используется когда важно не допустить дублирования работы.
queue
Добавляет новое выполнение в очередь. После завершения текущего экземпляра, следующий из очереди запускается автоматически.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
| overlap_policy | string | Политика: allow, skip, queue |
| max_instances | integer | Макс. параллельных экземпляров (1-10) |
| max_queue_size | integer | Макс. размер очереди (1-100) |
| execution_timeout | integer | Таймаут в секундах для авто-освобождения |
Пример использования
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 очереди
/queueСписок задач в очереди
/queue/{id}Удаление из очереди
/overlap-statsСтатистика перекрытий
Метрики
CronBox отслеживает следующие метрики для overlap prevention:
executions_skipped- количество пропущенных выполненийexecutions_queued- количество выполнений добавленных в очередьoverlap_rate- процент перекрытийrunning_instances- текущее количество запущенных экземпляров
Важно: При использовании политики queue, убедитесь что ваша задача завершается в разумное время. Используйте execution_timeout для автоматического освобождения зависших экземпляров.