logologo
Начало
Руководство
Разработка
Плагины
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Начало
Руководство
Разработка
Плагины
API
logologo
Рабочие процессы
Обзор
Быстрый старт

Триггер

Обзор
Событие таблицы данных
Задача по расписанию
Событие перед действием
Событие после действия
Пользовательское событие действия
Согласование
Webhook

Узел

Обзор

Искусственный интеллект (AI)

Большая языковая модель (LLM)

Управление потоком

Условие
Ветвление по условиям
Цикл
Переменная
Параллельное ветвление
Вызов рабочего процесса
Вывод потока
Сопоставление переменных JSON
Задержка
Завершение

Вычисление

Вычисление
Вычисление даты
Вычисление JSON

Операции с данными

Добавление данных
Обновление данных
Запрос данных
Удаление данных
Операция SQL

Ручная обработка

Ручная обработка
Согласование
Копия (CC)

Расширенные типы

HTTP-запрос
Скрипт JavaScript
Уведомление
Отправка email
Ответ
Сообщение ответа
Переменная
Журнал выполнения
Управление версиями
Расширенные параметры

Разработка расширений

Обзор
Расширенные типы триггеров
Расширенные типы узлов
Справочник API
Previous PageСобытие таблицы данных
Next PageСобытие перед действием
Уведомление о переводе ИИ

Эта документация была автоматически переведена ИИ.

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

#Введение

Запланированная задача — это событие, которое запускается по условию времени. Существует два режима:

  • Пользовательское время: Обычный запуск по расписанию, аналогичный cron, на основе системного времени.
  • Поле времени коллекции: Запуск на основе значения поля времени в коллекции при наступлении указанного времени.

Когда система достигает момента времени (с точностью до секунды), который соответствует настроенным условиям запуска, будет запущен соответствующий рабочий процесс.

#Основное использование

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

При создании рабочего процесса в списке рабочих процессов выберите тип «Запланированная задача»:

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

#Режим «Пользовательское время»

Для обычного режима сначала необходимо настроить время начала на любой момент (с точностью до секунды). Время начала можно установить как в будущем, так и в прошлом. Если время начала установлено в прошлом, система проверит, наступило ли оно, основываясь на настроенном условии повтора. Если условие повтора не настроено, и время начала находится в прошлом, рабочий процесс больше не будет запускаться.

Правило повтора можно настроить двумя способами:

  • По интервалу: Запускается через фиксированный интервал после времени начала, например, каждый час, каждые 30 минут и т.д.
  • Расширенный режим: То есть, по правилам cron. Можно настроить запуск по циклу, который соответствует фиксированной дате и времени.

После настройки правила повтора вы также можете задать условие завершения. Завершение может быть по фиксированному времени или по ограничению на количество выполненных запусков.

#Режим «Поле времени коллекции»

Использование поля времени коллекции для определения времени начала — это режим запуска, который объединяет обычные запланированные задачи с полями времени коллекции. Использование этого режима может упростить узлы в некоторых специфических рабочих процессах, а также сделать настройку более интуитивно понятной. Например, чтобы изменить статус просроченных неоплаченных заказов на «отменен», вы можете просто настроить запланированную задачу в режиме «Поле времени коллекции», выбрав время начала как 30 минут после создания заказа.

#Полезные советы

#Запланированные задачи в неактивном или остановленном состоянии

Если настроенное условие времени выполняется, но весь сервис приложения NocoBase находится в неактивном или остановленном состоянии, запланированная задача, которая должна была быть запущена в этот момент, будет пропущена. Более того, после перезапуска сервиса пропущенные задачи больше не будут запускаться. Поэтому при использовании вам, возможно, потребуется предусмотреть обработку таких ситуаций или запасные меры.

#Количество повторов

Когда в условиях завершения настроено ограничение по количеству повторов, учитывается общее количество выполнений для всех версий одного и того же рабочего процесса. Например, если запланированная задача была выполнена 10 раз в версии 1, и количество повторов также установлено на 10, этот рабочий процесс больше не будет запускаться. Даже если его скопировать в новую версию, он не будет запущен, если только количество повторов не будет изменено на число, большее 10. Однако, если рабочий процесс копируется как новый, счетчик выполнений будет сброшен до 0. Без изменения соответствующих настроек новый рабочий процесс сможет быть запущен еще 10 раз.

#Различия между интервальным и расширенным режимами в правилах повтора

Интервал в правиле повтора отсчитывается относительно времени последнего запуска (или времени начала), тогда как расширенный режим запускается в фиксированные моменты времени. Например, если настроен запуск каждые 30 минут, и предыдущий запуск был 2021-09-01 12:01:23, то следующее время запуска будет 2021-09-01 12:31:23. В расширенном режиме, то есть в режиме cron, правила всегда настроены на запуск в фиксированные моменты времени. Например, можно настроить запуск в 01 и 31 минуту каждого часа.

#Пример

Предположим, нам нужно каждую минуту проверять заказы, которые не были оплачены в течение 30 минут после создания, и автоматически изменять их статус на «отменен». Мы реализуем это, используя оба режима.

#Режим «Пользовательское время»

Создайте рабочий процесс на основе запланированной задачи. В настройках триггера выберите режим «Пользовательское время», установите время начала на любой момент не позднее текущего, для правила повтора выберите «Каждую минуту», а условие завершения оставьте пустым:

Запланированная задача_Настройка триггера_Режим пользовательского времени

Затем настройте другие узлы в соответствии с логикой рабочего процесса: рассчитайте время 30 минут назад и измените статус неоплаченных заказов, созданных до этого времени, на «отменен»:

Запланированная задача_Настройка триггера_Режим пользовательского времени

После активации рабочего процесса он будет запускаться каждую минуту, начиная с указанного времени, рассчитывая время 30 минут назад для обновления статуса заказов, созданных до этого момента, на «отменен».

#Режим «Поле времени коллекции»

Создайте рабочий процесс на основе запланированной задачи. В настройках триггера выберите режим «Поле времени коллекции», выберите коллекцию «Заказы», установите время начала на 30 минут после времени создания заказа, а для правила повтора выберите «Не повторять»:

Запланированная задача_Настройка триггера_Режим поля времени коллекции_Триггер

Затем настройте другие узлы в соответствии с логикой рабочего процесса, чтобы обновить статус заказа с ID, соответствующим ID триггерных данных, и статусом «не оплачен» на «отменен»:

Запланированная задача_Настройка триггера_Режим поля времени коллекции_Узел обновления

В отличие от режима «Пользовательское время», здесь нет необходимости рассчитывать время 30 минут назад, поскольку контекст данных, запускающих рабочий процесс, уже содержит строку данных, соответствующую условию времени. Таким образом, вы можете напрямую обновить статус соответствующего заказа.