【问题标题】:Mule 4 - Until Successful - increase wait time for each iterationMule 4 - 直到成功 - 增加每次迭代的等待时间
【发布时间】:2020-07-11 06:25:16
【问题描述】:

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

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

此代码以 10 秒的间隔制作 3 条轨迹。

但是,我想增加每次迭代的等待时间。 即我希望组件在第一次迭代时等待 10 秒,在第二次迭代时等待 20 秒,在第三次迭代时等待 30 秒。

是否有任何选项可以使用组件来执行此操作。 请建议。谢谢。

【问题讨论】:

    标签: mule mule4


    【解决方案1】:

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

    【讨论】:

    • 您可以尝试使用 Mule SDK 实现您自己的自定义范围。
    【解决方案2】:

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

    <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-13
      • 2012-10-13
      • 2021-06-02
      • 2017-03-16
      • 1970-01-01
      • 2020-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多