我有一个Mule流程,用于处理名为 AAA_ [id_number] .dat 的入站文件夹中的文件。但是,当名为 [id_number] .dat 的相应文件也可用时,我需要将Mule配置为仅处理此文件。第二个文件表明第一个文件已准备好进行处理。
有没有办法可以在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>
答案 0 :(得分:2)
为什么不过滤为[id_number] .dat文件(或排除AAA_文件的文件)设置文件入站过滤器,如果这些文件仅用于通知?在我看来会更有意义。然后,您可以根据originalFileName属性,使用流内的requester module获取要处理的文件。
答案 1 :(得分:0)
为了防止需要它的人,你可以创建一个自定义过滤器并在那里包含你自己的过滤逻辑。来自此博客的更多详细信息here