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

Parallel

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

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

Две пустые ветки добавляются автоматически при добавлении логического блока Parallel. Вы можете добавить еще одну или несколько веток, нажав на кнопку «+» справа от блока Parallel.

Ветку блока Parallel можно удалить вместе с блоком, размещенным в ней, нажав на кнопку удаления. При удалении элемента из последней ветки сама не удаляется, а отображается как пустая.

При удалении блока Parallel все его ветки удаляются вместе с ним.

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

В данном разделе описаны параметры блока Parallel, которые необходимо заполнить при настройке и примеры заполнения значений этих параметров.

Базовые параметры блока Parallel

Название в UIНазваниеОбязательныйОписаниеЗначение по умолчаниюТип данных
Parallel ProcessingparallelProcessingНетЕсли эта функция включена, отправка сообщений блокам-получателям происходит одновременно. Обратите внимание, что тред, вызвавший отправку, будет ждать полной обработки всех сообщений, прежде чем продолжить работу. Одновременно происходит только отправка и обработка ответов от блоков-получателей. Если включена параллельная обработка, механизм маршрутизации продолжит обработку с использованием последнего использованного потока из пула параллельных тредов. Однако, если вы хотите использовать исходный поток, вызвавший отправку блокам-получателям, обязательно включите параметр синхронизации. В режиме параллельной обработки вы можете также указать значение параметра True, чтобы заставить этот блок обрабатывать подзадачи с использованием верхних границ тред-пула. Если указать значение параметра False, это позволит движку использовать как можно больше тредов, которые могут быть доступны благодаря использованию других тред-пулов.FalseЛогическое значение
StreamingstreamingНетЕсли этот параметр включен, ответы будут обрабатываться в том порядке, в котором они приходят. Если этот параметр отключен, ответы будут обрабатываться точно в том же порядке, который определен в блоке Parallel.FalseЛогическое значение
SynchronoussynchronousНетОпределяет, следует ли строго использовать синхронную обработку. Если этот параметр включен, то для продолжения маршрутизации после завершения многоадресной отправки используется тот же поток, даже если включена параллельная обработка.FalseЛогическое значение

Расширенные параметры блока Parallel

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

Если этот параметр имеет значение False, то метод aggregate не применяется, если не было входных данных для обогащения.

Если этот параметр имеет значение True, агрегационная стратегия применяется с использованием значений NULL.

FalseЛогическое значение