Idempotent consumer
Общее описание
Блок Idempotent Consumer используется для фильтрации дублирующихся сообщений. Идентификатор сообщения добавляется в хранилище для того, чтобы обнаружить дубликаты в запущенных процессах обмена сообщениями. Если обмен сообщениями закончился ошибкой, идентификатор сообщения будет удален из хранилища. При успешном завершении обмена сообщениями идентификатор остается в хранилище.
Настройка блока
В данном разделе описаны параметры блока Idempotent Consumer, которые необходимо заполнить при настройке и примеры заполнения значений этих параметров.
Базовые параметры блока Idempotent Consumer
| Название в UI | Название атрибута | Обязательный | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|---|
| Language | language | Да | Выбор языка, на котором будет написано выражение для сопоставления сообщений и определения дубликатов. Возможные значения:
| groovy | Список |
| Expression | expression | Да | Выражение для вычисления корреляционного ключа, который будет использоваться для проверки на дублирование. Техническое сообщение, имеющее такой же корреляционный ключ, рассматривается как дублирующее и будет отклонено. | Выражение | |
| Result Type | resultType | Нет | Формат результата вычисления условия. | Строка | |
| Idempotent Repository | idempotentRepository | Имя идемпотентного хранилища идентификаторов сообщений. Доступные значения выбираются из списка зарегистрированных в системе хранилищ. | Список | ||
| Trim | trim | Нет | Задает нужно ли отсекать перенос строки и пробелы в начале и конце значения. | True | Логическое значение |
| Description | description | Краткое описание блока. | Строка |
Расширенные параметры блока Idempotent Consumer
| Название | Название | Обязательный | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|---|
| Disabled | disabled | Определяет будет ли отключен блок в потоке. В активированном потоке функциональность блока не будет отрабатываться. | False | Логическое значение | |
| Eager | eager | Определяет, следует ли сразу при обнаружении дубликата добавлять ключ в идемпотентный репозиторий или подождать завершения процесса. | True | Логическое значение | |
| Skip Duplicate | skipDuplicate | Определяет, следует ли пропускать дубликаты или нет. По умолчанию дубликаты будут пропущены. | True | Логическое значение | |
| Completion Eager | completionEager | Определяет, следует ли завершать работу блока сразу после обнаружения дубля или по завершении обмена сообщениями. Если этот параметр имеет значение True, то блок инициирует завершение процесса, когда достигнут конец блока. Таким образом, если обмен будет продолжен с маршрутизацией после завершения блока, то, что бы там ни происходило, это не повлияет на состояние. Если этот параметр имеет значение False (по умолчанию), то есть не завершается автоматически, то блок завершит работу, когда процесс будет завершен с маршрутизацией. Таким образом, если обмен будет продолжен после завершения блока, то все, что там произойдет, также повлияет на состояние. Например, если обмен завершился неудачно из-за исключения, то блок откатит изменения. | False | Логическое значение | |
| Remove On Failure | removeOnFailure | Определяет, следует ли удалять или сохранять ключ в случае ошибки. | True | Логическое значение |