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

Orbeon processors, processing in parallel or sequential

我想知道 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>

管道不会像 "using multiple threads" 那样 运行 "in parallel",但它使用流。

在你的例子中,URL Generator 发出请求 运行ning MarkLogic 中的 legislation.xq XQuery,并在读取数据时将其传递给 "down"管道的其余部分,它转换此数据(假设您的 task-xml.xpledit-xml-xmetal5.xsl 执行此类操作),并且这种情况发生在 URL 生成器从MarkLogic.