Mule - 仅在存在另一个文件时处理文件

时间:2014-03-04 18:34:21

标签: mule endpoint mule-studio inbound

我有一个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>

2 个答案:

答案 0 :(得分:2)

为什么不过滤为[id_number] .dat文件(或排除AAA_文件的文件)设置文件入站过滤器,如果这些文件仅用于通知?在我看来会更有意义。然后,您可以根据originalFileName属性,使用流内的requester module获取要处理的文件。

答案 1 :(得分:0)

为了防止需要它的人,你可以创建一个自定义过滤器并在那里包含你自己的过滤逻辑。来自此博客的更多详细信息here