我想知道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>&year=</xsl:text>
<xsl:value-of select="encode-for-uri(/conditions/parameters/year)" />
<xsl:text>&number=</xsl:text>
<xsl:value-of select="encode-for-uri(/conditions/parameters/number)" />
<xsl:text>&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>
一个管道不会 "并行 "运行,如 "使用多个线程",但它使用流。
在你的情况下,URL生成器发出一个请求,运行在 legislation.xq
XQuery在MarkLogic中,当它读取数据时,它将数据 "下传 "到管道的其余部分,管道将这些数据进行转换(假设你的 task-xml.xpl
和 edit-xml-xmetal5.xsl
做类似的事情),而这是在URL生成器从MarkLogic接收数据时发生的。