问题陈述是并行执行多项操作并聚合响应并将其存储在文件中。
链接到工作室中的骡子流图像: image
在这个流程中,我试图做的是在两个分散的分支中设置两个常量字符串,并收集和聚合并存储在文件中。我尝试使用“我的响应”的“设置有效载荷”覆盖有效载荷。我期待“我的回应”作为文件的内容。但是文件内容是:
¨Ìsr)java.util.concurrent.CopyOnWriteArrayListx]ü'F'ê√xpwtmsg1tmsg2x
我做了调试,File端点的有效负载是“我的响应”。集合如何以及为何被写入文件。
任何人都可以帮助我让它发挥作用。 以下是xml:
<flow name="mule-assignFlow21123">
<quartz:inbound-endpoint jobName="dummyflow" repeatInterval="10000" responseTimeout="10000" doc:name="Quartz">
<quartz:event-generator-job/>
</quartz:inbound-endpoint>
<scatter-gather doc:name="Scatter-Gather1" >
<threading-profile maxThreadsActive="1" poolExhaustedAction="RUN"/>
<processor-chain>
<set-payload value="msg 1" doc:name="Set Payload"/>
<logger level="INFO" doc:name="Logger"/>
</processor-chain>
<processor-chain>
<set-payload value="msg 2" doc:name="Set Payload"/>
<logger level="INFO" doc:name="Logger"/>
</processor-chain>
</scatter-gather>
<set-payload value="my response" doc:name="Set Payload"/>
<file:outbound-endpoint path="/Users/premkumar/Desktop" outputPattern="Results.txt" responseTimeout="10000" mimeType="text/plain" doc:name="Save 2 File"/>
</flow>
答案 0 :(得分:1)
流程将自动确定飞行中事件的processingStrategy
,由于石英终点,该事件将是异步的,因此文件端点也将触发异步。
而是明确将流程processingStrategy
设置为synchronous
:
<flow name="mule-assignFlow21123" processingStrategy="synchronous">
<quartz:inbound-endpoint jobName="dummyflow" repeatInterval="10000" responseTimeout="10000" doc:name="Quartz">
<quartz:event-generator-job/>
</quartz:inbound-endpoint>
<scatter-gather doc:name="Scatter-Gather1" >
<threading-profile maxThreadsActive="1" poolExhaustedAction="RUN"/>
<processor-chain>
<set-payload value="msg 1" doc:name="Set Payload"/>
<logger level="INFO" doc:name="Logger"/>
</processor-chain>
<processor-chain>
<set-payload value="msg 2" doc:name="Set Payload"/>
<logger level="INFO" doc:name="Logger"/>
</processor-chain>
</scatter-gather>
<set-payload value="my response" doc:name="Set Payload"/>
<file:outbound-endpoint path="/Users/premkumar/Desktop" outputPattern="Results.txt" responseTimeout="10000" mimeType="text/plain" doc:name="Save 2 File"/>