Skip to main content

EnforceOrder

Описание

Обеспечивает соблюдение ожидаемого порядка файлов FlowFiles, принадлежащих одной и той же группе данных на одном узле. Хотя PriorityAttributePrioritizer можно использовать на соединении для обеспечения приоритетного порядка файлов FlowFiles, в зависимости от обработки ошибок, ветвления и других конструкций потока, файлы FlowFiles могут выйти из порядка. EnforceOrder можно использовать для обеспечения исходного порядка этих FlowFiles. [ВАЖНО] Для применения EnforceOrder, FirstInFirstOutPrioritizer должен использоваться на КАЖДОЙ следующей связи ДО тех пор, пока порядок файлов FlowFiles не будет восстановлен операцией, такой как MergeContent, или их записью в конечное место назначения.

Теги

sort, order

Свойства

НазваниеОписание
Group IdentifierEnforceOrder поддерживает несколько групп упорядочивания. «Идентификатор группы» используется для определения группы, к которой относится FlowFile. Это свойство будет оцениваться для каждого входящего FlowFile. Если результат оценки будет пустым, FlowFile будет перенаправлен на сбой. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Order AttributeИмя атрибута FlowFile, значение которого будет использоваться для упорядочивания FlowFiles в группе. Если у FlowFile нет этого атрибута или его значение не является целым числом, FlowFile будет перенаправлен на сбой.
Initial OrderКогда поступает первый FlowFile из группы, вычисляется и сохраняется в управляемом состоянии начальный целевой порядок. После этого целевой порядок начинает отслеживаться EnforceOrder и сохраняться в хранилище управления состоянием. Если используется язык выражений, но результат вычисления не является целым числом, то файл Flow будет перенаправлен на сбой, а начальный порядок останется неизвестным до тех пор, пока последовательные файлы Flow не обеспечат допустимый начальный порядок. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Maximum OrderЕсли указано, то все файлы Flow с более высоким порядком будут перенаправлены на сбой. Это свойство вычисляется только один раз для данной группы. После вычисления максимального порядка он сохраняется в хранилище управления состоянием и используется для других файлов Flow, принадлежащих к той же группе. Если используется язык выражений, но результат вычисления не является целым числом, то файл потока будет перенаправлен на сбой, а максимальный порядок останется неизвестным до тех пор, пока последовательные файлы потока не обеспечат допустимый максимальный порядок. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Batch CountМаксимальное количество FlowFiles, которые EnforceOrder может обработать за один запуск.
Wait TimeoutУказывает продолжительность, по истечении которой ожидающие файлы потока будут перенаправлены в отношение «опередил».
Inactive TimeoutУказывает продолжительность, по истечении которой состояние неактивной группы будет удалено из управляемого состояния. Группа считается неактивной, если в течение указанного времени не было получено ни одного нового входящего FlowFile для этой группы. Время ожидания неактивности должно быть больше, чем время ожидания ожидания. Если FlowFile поступает с опозданием после того, как его группа уже очищена, он будет рассматриваться как новая группа, но никогда не будет соответствовать порядку, так как ожидаемые предыдущие FlowFiles уже удалены. В конечном итоге время ожидания FlowFile истечёт, и он будет перенаправлен в раздел «опережение». Чтобы избежать этого, состояния групп должны сохраняться достаточно долго, однако более короткая продолжительность будет полезна для повторного использования одного и того же идентификатора группы.

Взаимосвязи

  • overtook: Файл потока, который ждал предшествующие файлы потока дольше, чем время ожидания, и обогнал эти файлы потока, будет направлен в эту связь.
  • skipped: Файл потока, который имеет порядок младше текущего, то есть прибыл слишком поздно и был пропущен, будет направлен в эту связь.
  • success: В это отношение будет перенаправлен потоковый файл с соответствующим номером заказа.
  • wait: Файл потока с несоответствующим порядком будет направлен в эту связь
  • failure: Потоковые файлы, которые не имеют обязательных атрибутов или не могут их вычислить, будут перенаправлены в это отношение