Orbeon处理器,并行或顺序处理

问题描述 投票:1回答:1

我想知道Orbeon是并行处理还是顺序处理。

我们有一个流水线,从2个数据源中获取数据,并将其合并到一个单一的响应中。下面的处理是以并行方式进行,并在两个数据源都检索到时进行合并,还是以顺序方式进行?如果是顺序的,能不能把它变成并行的?

<!-- processor that gets the xml data from ML db -->
<p:processor name="oxf:url-generator">
                <p:input name="config" href="#conditions" transform="oxf:xslt" >
                                <config xsl:version="2.0">
                                                <url>
                                                                <xsl:text>$MLDOMAIN/queries/legislation.xq</xsl:text>
                                                                <xsl:text>?type=</xsl:text>
                                                                <xsl:value-of select="encode-for-uri(/conditions/parameters/type)" />
                                                                <xsl:text>&amp;year=</xsl:text>
                                                                <xsl:value-of select="encode-for-uri(/conditions/parameters/year)" />
                                                                <xsl:text>&amp;number=</xsl:text>
                                                                <xsl:value-of select="encode-for-uri(/conditions/parameters/number)" />
                                                                <xsl:text>&amp;section=</xsl:text>
                                                                <xsl:value-of select="encode-for-uri(/conditions/parameters/section)" />
                                                </url>
                                                <cache-control>
                                                                <use-local-cache>false</use-local-cache>
                                                </cache-control>
                                </config>
                </p:input>
                <p:output name="data" id="xmlData"/>
</p:processor>
<!-- processor calls a pipeline to return the GraphDB data -->
<p:processor name="oxf:pipeline">
                <p:input name="config" href="task-xml.xpl"/>
                <p:input name="legislation" href="#legislation"/>
                <p:input name="section" href="#section"/>
                <p:input name="requestsections" href="#requestsections"/>
                <p:input name="minorType" href="#xmlData#xpointer(/l:Fragment/u:Metadata//u:DocumentMinorType)"/>
                <p:input name="instance" href="#instance"/>
                <p:input name="amendments" href="#instance#xpointer(/parameters/amendments)"/>
                <p:input name="date" href="#date"/>
                <p:input name="basedate" href="#basedate"/>
                <p:input name="conditions" href="#conditions"/>
                <p:output name="data" id="taskXml"/>
</p:processor>
<!-- processor that combines the two sources into a single xml output -->
<p:processor name="oxf:xslt">
                <p:input name="config" href="../../xsl/common/edit-xml-xmetal5.xsl"/>
                <p:input name="data" href="#xmlData"/>
                <p:input name="tasks" href="#taskXml"/>
                <p:output name="data" ref="data"/>
</p:processor>
orbeon
1个回答
0
投票

一个管道不会 "并行 "运行,如 "使用多个线程",但它使用流。

在你的情况下,URL生成器发出一个请求,运行在 legislation.xq XQuery在MarkLogic中,当它读取数据时,它将数据 "下传 "到管道的其余部分,管道将这些数据进行转换(假设你的 task-xml.xpledit-xml-xmetal5.xsl 做类似的事情),而这是在URL生成器从MarkLogic接收数据时发生的。

© www.soinside.com 2019 - 2024. All rights reserved.