我在插入和更新文档时创建了CPF。这些CPF管道创建多个xdmp:spawn-tasks以执行各种任务。我用这种方法有几个问题。MarkLogic 8中的CPF和任务服务器
- 一些产生的任务将修改原始文档。这会触发CPF的更新工作流程吗?我可以在文档上使用一个标志,表明它是衍生任务的更新。但是,有没有更好的方法来做到这一点?
- 我需要担心死锁吗?我的意思是,如果从同一个CPF产生的两个任务尝试同时更新同一个文档,我该如何避免这种情况?
基本上我试图为我插入的文档使用信封模式,并将所有的工件文档包装到一个文档中。我使用CPF生成此工件文档的原因是,我可以使用MLCP或任何其他方式将文档转储到数据库中,并让CPF担心处理,而不是使用自定义REST端点并通过此方法获取所有文档定制REST端点。
为什么你在第一个地方显式使用spawn?为什么不把这项工作作为单独的管道步骤执行并让CPF负责管理?从你的解释中你不清楚你想要完成什么。 –
我原本是在做自己的CPF任务,但是当我这样做时,我有时会发现内存异常,因为我所做的一件事就是使用“xdmp:document-filter”从文档中提取文本...但使用任务服务器,我没有得到任何东西,从而产生任务..我不认为原始文件的大小是问题。我最初的记忆假设没有得到释放或什么......但随着任务正常工作 – Ravi
xdmp:文件过滤器允许流式传输结果,所以它不一定需要消耗大量内存。然而,过滤可能是一个沉重的过程。这可能是值得打开另一个问题,以分享一些更多的细节,并问为什么你收到内存异常.. – grtjn