---
title: "Планировщик"
id: "1714"
type: "page"
slug: "scheduler"
published_at: "2026-09-04T10:19:36+00:00"
modified_at: "2026-09-05T01:25:59+00:00"
url: "https://pastukhov.com/agents/data/docs/scheduler"
markdown_url: "https://pastukhov.com/agents/data/docs/scheduler.md"
excerpt: "Встроенный планировщик запускает скрипты по расписанию — для этого не нужен ни «крон» на сервере…"
---

# Планировщик

[https://pastukhov.com/agents/data/docs/scheduler.md](https://pastukhov.com/agents/data/docs/scheduler.md)

Встроенный планировщик запускает скрипты по расписанию — для этого не нужен ни «крон» на сервере (системный планировщик задач), ни другие внешние инструменты. Всё расписание — это один файл `schedule.yml` в папке скриптов, которым управляет агент: вы просите в чате «запускай каждый день в 9 утра» — агент вносит запись сам.

## Как устроено расписание

Файл `schedule.yml` — это список записей. У каждой записи:

- `id` — название записи;
- `script` — путь к скрипту внутри папки;
- описание — зачем эта задача;
- и одно из двух: `every` — интервал (например, `15m`, `24h`, `7d`) или `cron` — точное время по полям: минута, час, день месяца, месяц, день недели (по UTC);
- дополнительные флаги: `enabled` (запись включена), `overlap` — что делать, если прошлый запуск ещё идёт (пропустить или поставить в очередь), `catchUp` — догонять ли пропущенные запуски.

## Интервалы: без дрейфа

Новая запись с интервалом запускается сразу, а дальше тикает по фиксированной сетке: каждые 15 минут, каждые 24 часа — точно, без накопления задержек. Если приложение простаивало (например, сервер перезагружался), следующий запуск — первая точка сетки в будущем, а не «плавающее» время от включения.

## Точное время

Запись с точным временем ждёт совпадения по часам (UTC): «каждый будний день в 7:00». Выражения, у которых будущих срабатываний нет (например, 31 февраля), не теряются — перепроверяются позже.

## Валидация «всё или ничего»

Весь файл проверяется целиком: одна плохая запись — и весь новый файл отклоняется, а действует последняя рабочая версия расписания. Сломать расписание одной опечаткой невозможно, данные не останутся без запусков. Отсутствие файла — не ошибка: просто расписания нет, ничего не запускается.

## Пропущенные запуски

Если время запуска пришло, пока приложение было выключено, запуск выполнится при старте (если включён `catchUp`) или будет пропущен по правилам очереди. Запуски не теряются молча — поведение всегда предсказуемо.

## Управление в интерфейсе

Раздел «Планировщик» показывает все записи: что запускается, когда и с каким интервалом. Отсюда можно приостановить всё расписание целиком, поставить на паузу одну запись, запустить скрипт прямо сейчас кнопкой «Запустить сейчас» и посмотреть историю запусков по расписанию. Сам файл в интерфейсе не редактируется: изменения расписания просите в чате — агент обновит `schedule.yml`, а правки подхватятся на лету, без перезапуска приложения.

Читайте также: [Запуски](/agents/data/docs/runs)
, [Чат с агентом](/agents/data/docs/chat)
.

[← Оглавление документации](/agents/data/docs)
