我想在我的骡子流中一次运行一个线程。而且我还想一个接一个地输入,即,一旦我完成了流程的第一次输入,只有Mule流程才会选择第二个输入。我应该使用哪种策略?
如果我使用同步策略,并且我们在Mule Flow查找的文件夹中有两个或两个以上的文件,它会一次选择所有输入。 如果我一次使用异步策略和1个线程,那么在进行任何其他输入之前我无法完成整个流程。
<flow name="Catalog_command_Execution" doc:name="Catalog_command_Execution" processingStrategy="synchronous">
<file:inbound-endpoint path="${inputCAT.path}" responseTimeout="10000" connector-ref="File" doc:name="Catalog File"/>
<object-to-string-transformer doc:name="File Mapping"/>
<custom-transformer class="com.tcs.sdm.kcm.cmdExecution.CmdCAT" doc:name="CAT cmd Execution"/>
<logger message="******************Entered file #[message.inboundProperties.originalFilename] for command execution has been Processed*********" level="INFO" category="Audit_LogCAT" doc:name="Logger"/>
<catch-exception-strategy doc:name="Catch Exception Strategy">
<logger message="*******************************Entered Catalog file for command execution is having error: #[exception.causeException]****************" level="INFO" category="Audit_LOgCAT" doc:name="Logger"/>
</catch-exception-strategy>
</flow>
<flow name="CatalogueFlow_AB" doc:name="CatalogueFlow_AB" processingStrategy="allowOneThread">
<wmq:inbound-endpoint queue="${wmq.queue.nameCT_AB}" doc:name="WMQ" connector-ref="WMQ"/>
<object-to-string-transformer doc:name="File Mapping"/>
<logger level="INFO" doc:name="CAT Logger" category="Audit_LogCAT" message="******************Entered Catalogue SOAP File with Province Name AB is Processed from queue*********"/>
<custom-transformer class="com.tcs.sdm.kcm.catalog.ServiceController_AB" doc:name="Java"/>
<catch-exception-strategy doc:name="Catch Exception Strategy">
<logger level="INFO" doc:name="CAT Exception Logger" category="Audit_LogCAT" message="*******************************Entered Catalogue SOAP File with Province Name AB is having error: #[exception.causeException]****************"/>
</catch-exception-strategy>
</flow>
答案 0 :(得分:0)
从您正在寻找处理一个文件的场景到另一个Mule Synchronous处理策略应该用于此目的。
如果您看到Mule选择了多个文件,那么需要查看流程为何会发生这种情况。
更新
WMQ入站流的处理策略不同步。然后它应该按预期工作。
<flow name="CatalogueFlow_AB" doc:name="CatalogueFlow_AB" processingStrategy="synchronous">
希望这有帮助。
答案 1 :(得分:0)
旧线程,但您是否尝试将WMQ使用者数设置为1? 流可以是同步的,但这并不意味着入站连接器将以同步方式工作。对于基于文件的连接器,您可以将调度程序设置为非线程,对于WMQ,您应该尝试将使用者设置为1。