在我的应用程序中,我使用了许多调解器(md-1,2,3,4和md-a,b,c),如(调用,脚本,有效负载工厂,数据映射器,迭代器,开关,丰富等)做任务。目前mediartor md-a,b,c以顺序方式在介体md-1,2,3,4之后运行。并且md-c返回的有效负载丰富了md-4返回的有效负载。
但是为了提高性能,我打算如下所述实现md-a,b,c parrelly。因此,在md-4之后它应该等到md-c完成并返回有效负载。然后它将丰富md-4返回的有效负载,如下所述。
所以,我的基本问题是
我不想详细解答。任何暗示都值得一试。
答案 0 :(得分:4)
对于此方案,您可以将克隆介体与聚合介体组合使用。请检查我的解决方案。
<?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>
答案 1 :(得分:2)
如何触发和执行parrel序列?
如何等到它完成?
如何通过它获得有效载荷返回?