xProc - 暂停管道并在发生特定事件时继续它

时间:2014-10-22 13:37:37

标签: pipeline smil synchronisation pausing-execution xproc

我对xProc和xPath相当新,但我已被要求解决以下问题:

步骤2通过辅助端口从步骤1接收数据。步骤2包含p:for-each,它将文档保存到每个传递for-each的元素的文件夹中。 (A部分)

这些文件(假设我从for-each收到6份文件)位于同一目录中,并由p:directory-list过滤,最终存储在一个文件中,包含每个文件的完整路径记录for-each创建的。 (B部分)

到目前为止,非常好。

问题是A部分似乎太慢了。 B部分已经尝试读取数据步骤A. 目录仍为空时存储。这意味着,我遇到了性能/同步问题。

现在问题是: 是否有可能让管道等待并在某个事件发生后立即让它继续?

这就是我想象的: 步骤B在必要时等待,直到步骤A存储数据的目录不再为空。我读了一些关于 dbxml:breakpoint,但遗憾的是,我无法找到比名称更多的信息 它似乎做的简短描述:

根据条件设置断点,这将导致管道操作在断点处暂停,可能需要用户干预才能继续和/或发出消息。

如果你对它有更多的了解并且可以举例说明它是如何使用的话,那就太棒了。如果您知道解决方法或解决此问题的其他方法,它也会有所帮助。

更新

搜索谷歌半个月后,我发现SMIL的时间表似乎可以解决问题。有没有人将XML / xProc和SMIL一起投入使用?

1 个答案:

答案 0 :(得分:0)

回到2009年底,我提出了使用SMIL'编排XProc的概念。 http://broadcast.oreilly.com/2009/09/xproc-and-smil-orchestrating-p.html在O' Reilly网络的博文中。{/ p>

但是,我不确定这个(XProc + Time)是解决问题的方法。对我来说,从你描述发生了什么事情并不完全清楚。您是暗示您是否正在尝试将某些内容写入磁盘,然后在后续步骤中阅读它?您需要将管道中的内容保留在管道中,以确保您可以将输出连接到后续输入。