在mule 3.4中进行同步直到成功
下面是我的骡子流程的一部分在mule 3.4中进行同步直到成功,mule,mule-el,mule-component,Mule,Mule El,Mule Component,下面是我的骡子流程的一部分 <until-successful objectStore-ref="ObjStreuntil" maxRetries="60" secondsBetweenRetries="60" doc:name="Until Successful" failureExpression="# [payload.state == 'Queued' || payload.state == 'InProgress']">
<until-successful objectStore-ref="ObjStreuntil" maxRetries="60"
secondsBetweenRetries="60" doc:name="Until Successful" failureExpression="# [payload.state == 'Queued' || payload.state == 'InProgress']">
<processor-chain doc:name="Processor Chain">
<sfdc:batch-info config-ref="Salesforce" doc:name="Salesforce">
<sfdc:batch-info ref="#[payload]"/>
</sfdc:batch-info>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
</processor-chain>
</until-successful>
我希望流等待批处理完成,然后继续下一个处理器。我相信使用处理链会得到结果
但是这个流程不起作用。我知道,在3.5版synchronos成功实现之前,有没有办法在3.4.0版上实现这一点
任何建议都会大有帮助
提前谢谢这里已经回答了这个问题: 但是,如果只想在批处理完成时执行某些操作,则需要再次检查状态,与failureExpression相反 比如:
<flow name="main">
<until-successful objectStore-ref="ObjStreuntil"
maxRetries="60" secondsBetweenRetries="60" doc:name="Until Successful"
failureExpression="#[payload.state == 'Queued' || payload.state == 'InProgress']">
<flow-ref name="checkBatch" />
</until-successful>
</flow>
<sub-flow name="checkBatch">
<sfdc:batch-info config-ref="Salesforce" doc:name="Salesforce">
<sfdc:batch-info ref="#[payload]" />
</sfdc:batch-info>
<choice>
<when expression="#[payload.state == 'Completed'">
<!-- Do what needs to be done next -->
</when>
<otherwise>
<!-- Do nothing so the until-successful retries -->
</otherwise>
</choice>
</sub-flow>
正如另一篇文章所描述的,如果您真的需要返回到主流程,您可以将其与请求-回复一起使用。您可以将until successful放在vm端点后面,并将其用作“请求”阶段,并将上面的when表达式写入应答队列。最近回答了这个问题: