首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在流中实现故障保护行为

在流中实现故障保护行为
EN

Stack Overflow用户
提问于 2013-02-02 03:47:20
回答 3查看 167关注 0票数 0

我正在尝试在我的流程中创建一个故障保护方案。

我的流程如下所示。它涉及实习生调用web服务的一些子流。在任何情况下,如果其中一个web服务不可用,就会抛出拒绝连接异常,整个处理过程就会停止。

相反,我想要一个故障安全的场景,即使当前出站调用失败,流也应该继续下一个子流。

是否有任何消息处理器或流控制处理器可以帮助在Mule中实现此行为。

下面是我的抽象流程

代码语言:javascript
复制
<flow name="main_flow" >
    ....
    ....
    <flow-ref  name="subflow_1" />
    ....
    ....
    <flow-ref  name="subflow_2" />
    ....
    ....
    <flow-ref  name="subflow_3" />
    ....
    ....

</flow>

<sub-flow name="subflow_1">
    ....
    ....
    <out-bound call to web-service />
    ....
    ....
</sub-flow>

<sub-flow name="subflow_2">
    ....
    ....
    <out-bound call to web-service />
    ....
    ....
</sub-flow>

<sub-flow name="subflow_3">
    ....
    ....
    <out-bound call to web-service />
    ....
    ....
</sub-flow>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-14 23:08:56

您可以使用流实现故障保护行为。

代码语言:javascript
复制
<flow name="main_flow" >
    ....
    ....
    <flow-ref  name="flow_1" />
    ....
    ....
    <flow-ref  name="flow_2" />
    ....
    ....
    <flow-ref  name="flow_3" />
    ....
    ....

</flow>

<flow name="flow_1" processingStrategy="synchronous" >
    ....
    ....
    <out-bound call to web-service />
    ....
    <catch-exception-strategy >
      .... Your FailSafe code to recover. Also you will have the exception here.
     </catch-exception-strategy>
</flow>

通过这种方式,您可以使用流来设置故障安全行为。

快乐编码:)

票数 1
EN

Stack Overflow用户

发布于 2013-02-02 04:04:18

一种技巧是将有效负载存储在一个变量中,使用<catch-exception-strategy>块捕获web服务调用异常,使用<set-payload>覆盖当前有效负载,然后从sub-flow1catch-exception流中手动调用sub-flow2

票数 1
EN

Stack Overflow用户

发布于 2013-02-02 04:32:09

对于每个web服务调用,使用first-successful路由器,将您的web服务调用作为第一个子级,并将回退机制作为第二个子级。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14653881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档