Mule - обрабатывать файл только при наличии другого
У меня есть поток Mule, который обрабатывает файлы во входящей папке с именем AAA_ [id_number].dat. Однако мне нужно настроить Mule для обработки этого файла только в том случае, если соответствующий файл с именем [id_number].dat также доступен. Второй файл указывает, что первый готов к обработке.
Есть ли способ настроить входящую конечную точку в Mule так, чтобы она начала обрабатывать файл AAA_ только при наличии его аналога? Файл [id_number].dat предназначен исключительно для уведомлений, он не должен обрабатываться Mule. Входящая конечная точка имеет фильтр регулярных выражений для поиска файла в формате AAA...
<!-- Mule Requester Config -->
<mulerequester:config name="muleRequesterConfig" doc:name="Mule Requester"/>
<!-- File Connectors -->
<file:connector name="inputTriggerConnector" pollingFrequency="100" doc:name="File"/>
<file:connector name="inputFileConnector" doc:name="File"/>
<file:connector name="outputFileConnector" doc:name="File"/>
<!-- File Endpoints -->
<file:endpoint name="inputFileEndpoint" path="src/test/input" responseTimeout="10000" doc:name="File">
<file:filename-regex-filter pattern="\d{6}.dat" caseSensitive="true"/>
</file:endpoint>
<!-- Trigger Flow -->
<flow name="triggerFlow" doc:name="triggerFlow">
<file:inbound-endpoint ref="inputFileEndpoint" connector-ref="inputTriggerConnector" pollingFrequency="1000" doc:name="Input Trigger"/>
<flow-ref name="mainFlow_StockB2C" doc:name="Flow Reference"/>
</flow>
<!-- Main Flow -->
<flow name="mainFlow" doc:name="mainFlow">
<mulerequester:request config-ref="muleRequesterConfig" resource="file://.../AAA_#[message.inboundProperties.originalFilename]?connector=inputFileConnector" timeout="6000" doc:name="Mule Requester"/>
<DO SOMETHING WITH AAA_ FILE>
<file:outbound-endpoint connector-ref="outputFileConnector" path="src/test/output" outputPattern="#[function:dateStamp].csv" responseTimeout="6000" doc:name="Output File"/>
</flow>
2 ответа
Почему бы не установить фильтр для фильтра входящих файлов для файлов [id_number].dat (или файла, исключающего файлы AAA_), если они используются только для уведомления? Было бы больше смысла, на мой взгляд. Затем вы можете получить файл для обработки с помощью модуля-запросчика внутри потока на основе свойства originalFileName.
На случай, если это может помочь кому-то, кто в этом нуждается, вы можете создать собственный фильтр и включить туда свою собственную логику фильтрации. Более подробная информация из этого блога здесь