Mule 4-直到成功-增加每次迭代的等待时间



在我的应用程序中,我正在进行HTTP调用以从外部系统读取数据。我想重复追踪,直到间隔3次,直到我得到成功的回应。我正在使用Mule的组件来完成此操作。下面是代码。

<until-successful maxRetries="3" millisBetweenRetries="10000">
<http:request method="GET"></http:request>
</until-successful>

此代码正在以10秒为间隔进行3次跟踪。

然而,我想增加每次迭代的等待时间。即,我希望组件在第一次迭代中等待10秒,在第二次迭代中等候20秒,在第一次循环中等候30秒。

是否有任何选项可以对组件执行此操作。请提出建议。谢谢

我认为没有现成的方法。等待时间可以是一个表达式,但我不认为您可以在每次迭代中更改值。

您可以通过嵌套具有不同延迟的<until-successful>作用域来实现这一点。不是最优雅的,但至少它使用了开箱即用的组件!

<flow name="pavanFlow">
<http:listener doc:name="go" config-ref="HTTP_Listener_config" path="go"/>
<until-successful maxRetries="1" doc:name="Third Retry" millisBetweenRetries="30000">
<until-successful maxRetries="1" doc:name="Second Retry" millisBetweenRetries="20000">
<until-successful maxRetries="1" doc:name="First Retry" millisBetweenRetries="10000">
<flow-ref doc:name="attemptFlow" name="attemptFlow" />
</until-successful>
</until-successful>
</until-successful>
</flow>
<flow name="attemptFlow">
<logger level="INFO" doc:name="Trying" message="Trying"/>
<raise-error doc:name="SOMEFAILURE" type="X:SOMEFAILURE"/>
</flow>

最新更新