Перейти к основному содержимому

Запланированные задачи

Система запланированных задач Elftia (Cron) позволяет автоматически выполнять повторяющиеся действия по расписанию. Поддерживаются два типа действий — уведомления на рабочем столе и выполнение задач AI Agent — с возможностью отправки результатов в мессенджеры через Channel.

Варианты использования

  • Каждое утро в 9:00 AI делает сводку последних технических новостей
  • Проверка статуса API каждые 30 минут с отправкой уведомления
  • Одноразовое напоминание в указанное время
  • Периодический запуск AI Agent для анализа данных с отправкой результатов в Discord или Telegram
  • Автоматическое составление плана работы на неделю каждое утро в понедельник

Создание запланированной задачи

Шаги

  1. Откройте страницу управления Cron (через боковую панель или навигационное меню)
  2. Нажмите кнопку Создать задачу
  3. Заполните информацию о задаче:
    • Название задачи — дайте задаче понятное имя
    • Описание (необязательно) — подробно опишите назначение задачи
    • Тип расписания — выберите частоту выполнения (см. типы расписаний ниже)
    • Тип действия — выберите уведомление или выполнение Agent
    • Содержание сообщения — текст уведомления или промпт для Agent
  4. (Необязательно) Настройте отправку в Channel
  5. (Необязательно) Выберите LLM-провайдера и модель для задач Agent
  6. Нажмите Сохранить

Типы расписаний

Elftia поддерживает три метода планирования, охватывающих любые потребности — от простых до сложных.

Cron-выражение

Используйте стандартное 5-полевое cron-выражение для точного управления временем выполнения.

Формат: минута час день месяц день_недели

ПолеДиапазонСпециальные символы
Минута0-59* , - /
Час0-23* , - /
День1-31* , - /
Месяц1-12* , - /
День недели0-7 (0 и 7 — воскресенье)* , - /

Распространённые примеры:

ВыражениеЗначение
0 9 * * *Каждый день в 9:00
30 8 * * 1-5По будням в 8:30
0 */2 * * *Каждые 2 часа в начале часа
0 9 1 * *Первого числа каждого месяца в 9:00
0 9 * * 1Каждый понедельник в 9:00
*/15 * * * *Каждые 15 минут
0 9,18 * * *Каждый день в 9:00 и 18:00

Справка по специальным символам:

СимволОписаниеПример
*Соответствует всем значениям* * * * * — каждую минуту
,Перечисление нескольких значений0,30 * * * * — в 0 и 30 минут каждого часа
-Диапазон0 9-17 * * * — в начале каждого часа с 9 до 17
/Шаг*/10 * * * * — каждые 10 минут

:::tip Визуальная помощь При создании задачи интерфейс предоставляет визуальный выбор режима расписания с пресетами: ежедневно, по будням, еженедельно, ежемесячно, ежечасно — не нужно писать cron-выражение вручную. При выборе пресета автоматически генерируется соответствующее cron-выражение. :::

Интервальное выполнение (every)

Повторяйте задачу через фиксированный интервал.

Формат: число + единица

ЕдиницаСимволПример
Секундыs30s — каждые 30 секунд
Минутыm5m — каждые 5 минут
Часыh1h — каждый час
Дниd3d — каждые 3 дня

Особенности поведения:

  • Интервал отсчитывается с момента завершения предыдущего выполнения
  • После перезапуска приложения система возобновляет отсчёт с последнего зафиксированного времени выполнения и не срабатывает немедленно

Однократное выполнение (at)

Выполняет задачу один раз в указанное точное время; после выполнения автоматически отключается.

Формат: строка даты и времени в формате ISO 8601

Пример: 2026-04-15T09:00:00

Особенности поведения:

  • Задача срабатывает в следующем цикле проверки после наступления указанного времени (интервал проверки — 30 секунд)
  • После выполнения задача автоматически переходит в состояние отключена
  • Просроченные одноразовые задачи не запускаются

Типы действий

Уведомление (notify)

Отправить системное уведомление на рабочем столе.

  • При срабатывании задачи появляется уведомление на рабочем столе с именем задачи и содержанием сообщения
  • Требует разрешения системы на отправку уведомлений приложением
  • Можно включить или отключить в настройках уведомлений Elftia

Выполнение Agent (agent)

Запустить AI Agent для выполнения указанного задания по промпту.

  • При срабатывании задачи система отправляет содержание сообщения в качестве промпта AI Agent
  • Agent выполняет инструкции из промпта и генерирует ответ
  • Ответ записывается в историю выполнения (сохраняются первые 2 000 символов)
  • Если для задачи не настроен Channel, результат выполнения отображается через уведомление на рабочем столе (управляется параметром notifyOnComplete)

Настройка LLM-провайдера

Для задач Agent можно указать LLM-провайдера и модель:

ПараметрОписание
Провайдер (providerId)Выбрать LLM-провайдера для выполнения задачи
Модель (model)Выбрать конкретную AI-модель

Если не указано, используются текущий провайдер и модель по умолчанию.

Отправка в Channel

Запланированные задачи поддерживают отправку результатов выполнения на внешние платформы обмена сообщениями (Discord, Telegram и другие).

Шаги настройки

  1. При создании или редактировании задачи включите Отправку в Channel
  2. Выберите целевой Channel (должен быть предварительно настроен в управлении Channel)
  3. Введите целевой Chat ID (идентификатор группы или канала внутри Channel)
  4. После завершения выполнения Agent результаты автоматически отправляются в указанный Channel

Особенности поведения

  • Для задач Agent с настроенным Channel промпт содержит информацию о Channel
  • Agent получает инструкцию использовать MCP-инструмент channel_send для отправки результатов в целевой Channel
  • Задачи Agent без настроенного Channel выполняются только локально, результаты отображаются через уведомление на рабочем столе

История выполнения

История выполнения каждой задачи записывается автоматически. Для каждой задачи сохраняется не более 200 последних записей.

Поля записи истории

ПолеОписание
Временная меткаВремя начала выполнения
Статусok (успех) или error (ошибка)
ДлительностьВремя выполнения (миллисекунды)
Сообщение об ошибкеОписание ошибки при сбое
Ответ AgentСодержание ответа задачи Agent (до 2 000 символов)

Просмотр истории

  1. Нажмите на задачу на странице управления Cron
  2. Разверните панель сведений о задаче
  3. Перейдите на вкладку История выполнения

Управление задачами

Пауза / Возобновление

  • Нажмите переключатель задачи, чтобы приостановить или возобновить её
  • Приостановленная задача не запускается, пока не будет снова включена

Запустить сейчас

  • Нажмите кнопку Запустить сейчас для ручного однократного запуска задачи
  • Не влияет на обычное расписание задачи
  • Если задача уже выполняется, повторное нажатие не создаёт параллельное выполнение

Редактирование

  • Нажмите на задачу для перехода в режим редактирования
  • Можно изменить название, описание, тип расписания, тип действия и настройки Channel
  • После сохранения изменений время следующего выполнения пересчитывается автоматически

Удаление

  • При удалении задачи также удаляются записи её истории выполнения
  • Удаление нельзя отменить

Трансляция событий статуса

Запланированные задачи транслируют события статуса во фронтенд во время выполнения:

СтатусОписание
runningЗадача запущена
successЗадача выполнена успешно
errorЗадача завершилась с ошибкой

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

Поведение системы

ПоведениеОписание
Интервал опросаПерезагрузка конфигурации задач каждые 5 секунд
Интервал проверкиПроверка времени расписания каждые 30 секунд
Дедупликация CronОдна и та же cron-задача срабатывает только один раз в пределах одной минуты
Контроль параллелизмаОдна и та же задача не выполняется одновременно несколько раз
Хранение данныхКонфигурации задач хранятся в jobs.json; записи истории — в директории runs/

Часто задаваемые вопросы

ПроблемаРешение
Задача не выполнилась вовремяУбедитесь, что задача включена, а выражение расписания задано правильно
Cron-выражение недопустимоИспользуйте визуальный режим расписания в интерфейсе или обратитесь к примерам выражений выше
Выполнение задачи Agent завершилось с ошибкойУбедитесь, что LLM-провайдер настроен правильно, а API Key действителен
Сообщение в Channel не полученоУбедитесь, что Channel настроен корректно, а Chat ID указан верно
Одноразовая задача не была запущенаУбедитесь, что указанное время ещё не наступило; время должно быть в формате ISO
Записи истории обрезаютсяСистема автоматически сохраняет последние 200 записей; более старые удаляются
Интервальная задача запускается сразу после перезапуска приложенияВ норме запуска немедленно не происходит; система возобновляет отсчёт с последнего времени выполнения

Связанные ссылки

  • Agent — узнайте о системе Agent; Agent является движком выполнения для запланированных задач
  • Channel — настройка каналов отправки сообщений
  • Чат — использование AI-функций в беседах