在mule 3.4中进行同步直到成功

在mule 3.4中进行同步直到成功,mule,mule-component,Mule,Mule Component,下面是我的骡子流程的一部分 <until-successful objectStore-ref="ObjStreuntil" maxRetries="60" secondsBetweenRetries="60" doc:name="Until Successful" failureExpression="# [payload.state == 'Queued' || payload.state == 'InProgress']"> <process

下面是我的骡子流程的一部分

<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版上实现这一点

任何建议都会大有帮助


提前感谢

要实现3.4中的目标,请在批处理调用后添加
流参考
vm:outbound endpoint
,以便在批处理完成时执行后续逻辑

这比阻塞主流程线程要好,因为批处理可能需要一段时间


请注意,如果您只想处理某些返回代码的后续逻辑,则可能需要在
sfdc:batch info
之后添加一个过滤器。

谢谢您的回复。在sfdc:批处理信息旁边添加流引用无效。我的要求是,流程应该等到批处理完成后再检查sfdc:batch-result。是否有其他方法可以做到这一点……如果您真的需要阻止主流程(听起来像是设计缺陷),您可以使用
request-reply
调用流,直到成功,并等待
处理器链中的响应。Mule 3.4.0不支持request-reply,看起来我不得不接受您的第一个建议。谢谢这不是真的:从Mule 3.0.0()开始,请求-答复就可用了。这是3.4.0版的文档:我无法在我的工作室中找到请求-回复范围,可能需要更新,并且显示请求-回复范围仅适用于3.5版(当前版本)