需要成功进行同步重试的帮助。 我想跟踪重试次数。 对于异步调用,有一个名为process.attempt.count的变量,但对于同步调用,此变量不起作用。 即使我使用变量来增加会话中的计数,它也会默认返回到直到成功为止的开始位置。 非常感谢您的帮助。
我尝试将计数器增加到成功为止,但是由于直到成功之前m子中都没有变量传播,所以变量默认为原始值
<until-successful failureExpression="#[sessionVars['code'] != 0]" maxRetries="6" secondsBetweenRetries="2" synchronous="true">
<flow-ref name="Enquiryflow" />
</until-successful>
<sub-flow name="Enquiryflow">
<choice doc:name="Choice">
<when expression="#[sessionVars['retryCount']=='0']">
<set-session-variable variableName="retryCount" value="#[sessionVars.retryCount + 1]"/>
<flow-ref name="postRequestToXYS" />
<flow-ref name="mapResponseTemplate" />
</when>
<otherwise>
<flow-ref name="postRequestToABC" />
<flow-ref name="mapResponseTemplate" />
</otherwise>
</choice>
</sub-flow>
答案 0 :(得分:0)
找到一种增加计数器的方法。 穆勒表示,直到成功的重试机制,变量都不会传播。 这适用于会话变量和变量。 但是,我们有一个称为注册表变量的选项。令我惊讶的是,尽管有例外,但保留了递增计数。
请关注此博客,了解如何在m子中使用注册表。 Mule ESB How to implement a counter variable to count how much times a flow is called