1

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

2 回答 2

2

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

于 2014-03-04T19:49:20.457 回答
0

万一这可能对需要它的人有所帮助,您可以创建一个自定义过滤器并在其中包含您自己的过滤逻辑。来自这个博客的更多细节在这里

于 2017-07-13T18:50:32.020 回答