Циклы и повторения

Зачем нужны циклы

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

 

Обработка нескольких элементов

Любая нода Нейро42 может принимать несколько элементов на вход, обрабатывать их и возвращать результат. Каждый элемент можно рассматривать как отдельную запись или отдельную строку данных.

Пример:

  1. У вас есть Customer Datastore node, выводящий пять клиентов.
  2. Вы подключаете Slack node к этой ноде и настраиваете параметры отправки сообщений.
  3. При запуске воркфлоу Slack node отправит по одному сообщению для каждого клиента — всего пять сообщений.

Так работает автоматическая обработка нескольких элементов без явного построения циклов.

 

Обработка одного элемента

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

Для этого включите параметр Execute Once в настройках ноды. Он применим, когда входной поток содержит несколько элементов, а вам нужно обработать только один.

 

Создание явных циклов

Хотя Нейро42 автоматически итерирует большинство элементов, иногда нужно вручную организовать цикл:

  • Подключите выход одной ноды к входу предыдущей.
  • Добавьте IF node или Loop Over Items node, чтобы определить условие остановки.

Пример использования IF node для цикла

  • Вы подключаете выход ноды к ее же входу через IF node.
  • IF node проверяет условие и решает, продолжать ли цикл или завершить его.

 

Обработка всех элементов с Loop Over Items

Если требуется пройтись по каждому элементу строго индивидуально:

  • Используйте Loop Over Items node.
  • Установите Batch Size = 1, чтобы обрабатывать элементы по одному.

Также можно объединять элементы в группы (batch), что полезно для:

  • Избежания лимитов API при больших объемах данных,
  • Обработки только конкретной группы элементов за раз.

Важно: после обработки всех элементов node завершает выполнение, и IF node для остановки цикла не требуется.

 

Исключения — когда нужно строить цикл вручную

Некоторые ноды не обрабатывают автоматически все входные элементы и требуют ручного создания цикла:

Нода / операция Особенности
CrateDB выполняется один раз для insert и update
Code node (Run Once for All Items) объединяет все элементы по заданному коду
Execute Воркфлоу (Run Once for All Items) выполняется один раз для всех элементов
HTTP Request нужно вручную обрабатывать постраничные результаты (pagination)
Microsoft SQL один раз для insert, update, delete
MongoDB один раз для insert и update
QuestDB один раз для insert
Redis Info выполняется только один раз, независимо от количества элементов
RSS Read один раз для указанного URL
TimescaleDB один раз для insert и update

 

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

Такая возможность полезна, например:

  • для контроля скорости вызовов API (rate limiting),
  • для ожидания завершения действия стороннего сервиса,
  • для паузы до получения ответа через вебхук.

 

Использование Wait node

В Нейро42 паузы реализуются с помощью Wait node.

  • Вы можете настроить ожидание фиксированного времени, например 10 секунд, минут или часов.
  • Также возможно ожидание появления события через вебхук, чтобы воркфлоу продолжился только после срабатывания внешнего триггера.

После завершения ожидания воркфлоу возобновляет выполнение с теми же данными, которые были на момент остановки.

 

Примеры применения

  • Rate limiting: если API накладывает ограничения на количество запросов в минуту, вы можете приостановить воркфлоу между вызовами.
  • Ожидание внешних событий: например, получение подтверждения оплаты или обновления статуса задачи в другой системе.

Предупреждение о применении иностранного языка

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

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

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

Мы обращаем внимание на тот факт, что наличие иностранного языка в данной документации обусловлено профессиональной необходимостью и соответствует установленным нормам и правилам использования специализированной литературы и документации в Российской Федерации.

Свяжитесь с нами

* нажимая на кнопку, Вы даете согласие на обработку персональных данных