"Read multiple file from different location simultaneously and merge them into one payload"



我正在从不同文件夹中读取多个文件并将它们合并为一个,但无法合并到一个文件中。

我正在使用复合源,在其中添加了两个文件连接器,然后将有效载荷记录到Logger中。有效载荷我得到一个。如何获得两个不同有效载荷或多个文件输入的一个有效负载组合?

<flow name="file2Flow">
    <composite-source doc:name="Copy_of_Composite Source">
        <file:inbound-endpoint path="src/main/resources/input1" responseTimeout="10000" doc:name="File"/>
        <file:inbound-endpoint path="src/main/resources/input2" responseTimeout="10000" doc:name="File"/>
    </composite-source>
    <file:file-to-string-transformer doc:name="File to String"/>
    <logger message="#[payload]" level="INFO" doc:name="Logger"/>
</flow>

我也在尝试此操作,但没有获得输出

<flow name="file2file2Flow">
       <http:listener config-ref="HTTP_Listener_Configuration" path="/files" doc:name="HTTP"/>
       <scatter-gather doc:name="Scatter-Gather">
          <file:outbound-endpoint path="src/main/resources/input1" responseTimeout="10000" doc:name="File"/>
          <file:outbound-endpoint path="src/main/resources/input1" responseTimeout="10000" doc:name="File"/>
    </scatter-gather>
    <dw:transform-message doc:name="Transform Message">
         <dw:set-payload><![CDATA[%dw 1.0
       %output application/json
      ---
    {
       post1: payload[0],
       post2: payload[1]
       }]]>     
    </dw:set-payload>
        </dw:transform-message>
        <logger message="#[payload]" level="INFO" doc:name="Logger"/>
    </flow>

file:inbound-endpoint将对一个目录进行轮询,因此,如果您需要不同的目录。

composite-source允许它,但它们不会在同一有效载荷中可用。

file:outbound-endpoint仅用于编写文件。

在m子3中,您可以通过poll的组合来实现这一目标,以触发流量,散布收集到多个处理器的路线和mule请求器模块以读取文件中间的文件。

mule请求者模块:https://www.mulesoft.com/exchange/68EF9520-24E9-4CF2-B2F5-620025690913/requester-module/

粗略的示例:

<flow name="dw-testFlow">
        <poll doc:name="Poll" frequency="10000">
            <logger level="INFO" doc:name="Logger" />
        </poll>
        <scatter-gather doc:name="Scatter-Gather">
            <mulerequester:request config-ref="muleRequesterConfig" resource="myFileEndpoint" doc:name="Mule Requester" />
            <mulerequester:request config-ref="muleRequesterConfig" resource="myFileEndpoint" doc:name="Mule Requester" />
        </scatter-gather>
    </flow>

最新更新