WSO2 ESB 5 中序列的并行执行

Parellel Execution of Sequences in WSO2 ESB 5

在我的应用程序中,我使用了一些调解器(md-1、2、3、4 和 md-a、b、c),例如(调用、脚本、有效负载工厂、数据映射器、迭代器、开关、丰富等)来完成一项任务。目前 mediator md-a,b,c 依次在 mediator md-1,2,3,4 之后运行。由 md-c 编辑的有效载荷 return 丰富了由 md-4 编辑的有效载荷 return。

但是为了提高性能,我计划按照下面提到的方式实现 md-a、b、c。因此,在 md-4 之后,它应该等到 md-c 完成并且 returns 有效负载。然后它将丰富由 md-4 编辑的有效载荷 return,如下所述。

所以,我的基本问题是

我不想要详细的答案。任何提示都会很有价值。

如何触发并执行parrel序列?

  • 对 2 个目标使用克隆中介

如何等待完成?

  • a 每个目标序列的末尾,调用一个使用聚合中介的序列

如何通过它获取payloadreturn?

  • 当聚合中介让您进入内部时 "onComplete",您可以访问所有有效载荷

对于这种情况,您可以将克隆调解器与聚合调解器结合使用。请检查我的解决方案。

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="PX_ParallelTest"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <clone>
            <target>
               <sequence>
                  <payloadFactory media-type="xml">
                     <format>
                        <Result1 xmlns="">
                           <resultCode>OK</resultCode>
                        </Result1>
                     </format>
                     <args/>
                  </payloadFactory>
                  <loopback/>
               </sequence>
            </target>
            <target>
               <sequence>
                  <payloadFactory media-type="xml">
                     <format>
                        <Result2 xmlns="">
                           <resultCode>OK</resultCode>
                        </Result2>
                     </format>
                     <args/>
                  </payloadFactory>
                  <loopback/>
               </sequence>
            </target>
         </clone>
      </inSequence>
      <outSequence>
         <property name="Result" scope="default">
            <Result xmlns=""/>
         </property>
         <aggregate>
            <completeCondition>
               <messageCount max="-1" min="-1"/>
            </completeCondition>
            <onComplete enclosingElementProperty="Result" expression="$body/*[1]">
               <enrich>
                  <source clone="true" xpath="$body/*[1]"/>
                  <target type="body"/>
               </enrich>
               <send/>
            </onComplete>
         </aggregate>
      </outSequence>
   </target>
   <description/>
</proxy>

现在您可以看到此实现的响应。

<Result>
   <Result1>
      <resultCode>OK</resultCode>
   </Result1>
   <Result2>
      <resultCode>OK</resultCode>
   </Result2>
</Result>