Перейти к основному содержимому
Руководство администратора
How To статьи
Установка и настройка
Компоненты
Руководство пользователя
Начало работы

Split

Общее описание

Блок Split позволяет разделять сложное сообщение на части и обрабатывать их по отдельности с помощью логики, выстроенной внутри этого блока-контейнера. В отличие от блока Parallel, блок Split содержит только одну ветку для обработки.

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

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

При удалении блока Split удаляются все блоки, расположенные внутри его области действия.

Блок Split может использоваться в качестве:

  • блока-обработчика.

Блок-обработчик предназначен для управления, проверки и преобразования данных, которые используются в контексте потока.

Настройка блока

В данном разделе описаны параметры блока Split, которые необходимо заполнить при его настройке.

Базовые параметры

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
LanguagelanguageОбязательный параметр
Выбор языка, на котором будет написано выражение для определения количества выполняемых циклов.
Возможные значения:
  • groovy
  • js
  • java
  • constant
  • simple
  • xpath
  • xTokenize
  • xQuery
  • jsonpath
groovyСписок
ExpressionexpressionОбязательный параметр
Выражение, которое определяет, как разделять входящее сообщение на части.
Выражение
Result TyperesultTypeФормат вывода результатов выражения.Строка
DescriptiondescriptionКраткое описание блока.Строка
Aggregation StrategyaggregationStrategyЗадает стратегию агрегации, которая будет использована для объединения ответа от внешнего сервиса в одно исходящее сообщение. Для применения стратегии агрегации требуется разработать кастомную стратегию — отдельный бин и зарегистрировать его в ESB Core. После добавления он станет доступен в списке.Строка
Parallel ProcessingparallelProcessingЕсли значение параметра установлено в True, то части сообщения будут обрабатываться одновременно в многопоточном режиме. Если значение параметра установлено в False, то части сообщения будут обрабатываться последовательно.FalseЛогическое значение
SynchronoussynchronousРазделение и последующая маршрутизация обрабатываются синхронно в исходном потоке, даже если включена опция параллельной обработки Parallel Processing. Это может быть полезно для тестирования или простых сценариев, где переключение между потоками нежелательно. Использование этого параметра может критически снизить производительность параллельной обработки.FalseЛогическое значение
StreamingstreamingЕсли значение параметра установлено в True, то данные будут разделяться и обрабатываться последовательно, для каждой части. Это позволяет эффективно работать с очень большими объемами данных, не загружая их все в память сразу.FalseЛогическое значение

Дополнительные параметры

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
TrimУдаляет пробелы в начале и в конце значений (обрезает ведущие и trailing‑пробелы).FalseЛогическое значение

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

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
DelimiterdelimiterСимвол-разделитель текстовых данных. Параметр предназначен для использования со встроенной стратегией токенизации. По сути, это укороченная альтернатива выражению tokenize(',').,Строка
Aggregation Strategy Method NameaggregationStrategyMethodNameЗадает имя алгоритма агрегации. Эта опция полезна, если ваш класс-агрегатор имеет несколько методов, и вы хотите выбрать конкретный метод, не реализуя стандартный интерфейс.Строка
Aggregation Strategy Method Allow NullaggregationStrategyMethodAllowNullУказывает, можно ли вызывать метод агрегации, если на первом вызове не было старого агрегированного сообщения, т. е. оно было пустым — NULL. Если значение параметра равно False, то метод агрегации не вызывается для первой части сообщения, а его результат просто используется как основа для последующей агрегации.FalseЛогическое значение
Stop On ExceptionstopOnExceptionЕсли значение параметра установлено в True, то при возникновении любого исключения немедленно прекратится обработка оставшихся частей. При параллельной обработке те задачи, которые еще не начали выполняться, будут отменены.FalseЛогическое значение
TimeouttimeoutТаймаут в миллисекундах для общей обработки всех частей. Если обработка не уложится в это время, будет вызвана стратегия, указанная в AggregationStrategy для текущих результатов, а оставшиеся части будут отменены.Строка
Executor ServiceexecutorServiceСсылка на пользовательский потоковый пул, который будет использоваться для параллельной обработки. Если значение параметра не указано при включенной параллельной обработке, то используется стандартный пул.Строка
Share Unit Of WorkshareUnitOfWorkЕсли значение параметра установлено в True, то все части сообщения будут использовать ту же единицу работы, что и оригинальное сообщение. Это означает, что если обработка одной части завершится неудачей и будет произведен откат состояния, это затронет всю единицу работы, например, откатит транзакцию для всего исходного сообщения. Используйте параметр с осторожностью, в основном для транзакционных сценариев.FalseЛогическое значение
DisableddisabledОпределяет будет ли отключен блок в потоке. В активированном потоке функциональность блока не будет отрабатываться. При отключении родительского блока все дочерние блоки будут также отключены.FalseЛогическое значение