我有一个 MarkLogic 数据库内容处理框架(CPF) 已安装且 CPF 管道如下:
- 每当插入文档时,它都会获取以下值执行日期从文档中并安排当时的任务。
Example:
样本文件:
<sample>
<execution-date>2014-10-20T12:29:10</execution-date>
</sample>
插入时触发 CPF 操作模块,该模块读取以下值执行日期字段并创建要在读取的时间执行的计划任务执行日期 field.
以下是 CPF 操作模块中创建计划任务的 XQuery 代码片段:
let $doc := fn:doc( $cpf:document-uri )
let $releasedon := xs:string($doc/sample/execution-date/text())
let $config := admin:get-configuration()
let $group := admin:group-get-id($config, "Default")
let $new-task :=
admin:group-one-time-scheduled-task(
"/tasks/task.xqy",
"/",
xs:dateTime($releasedon),
xdmp:database("SampleDB"),
xdmp:database("Modules"),
xdmp:user("admin"),
(),
"normal")
let $addTask := admin:group-add-scheduled-task($config,$group, $new-task)
return
admin:save-configuration($addTask),
xdmp:log(fn:concat("Task for document Uri: ", $cpf:document-uri, " created"))
现在,当我插入单个文档时,一切都会按预期工作,即:
- 文档插入成功
- CPF动作模块触发成功
- 计划任务创建成功。
But,当我尝试使用以下命令插入多个文档时:
xdmp:document-insert("/1.xml",
<sample>
<execution-date>2014-10-21T10:00:00</execution-date>
</sample>,
xdmp:default-permissions(),
("documents"))
,
xdmp:document-insert("/2.xml",
<sample>
<execution-date>2014-10-20T11:00:00</execution-date>
</sample>,
xdmp:default-permissions(),
("documents"))
CPF操作模块触发成功(日志中可以看到日志消息)BUT
ONLY创建一个计划任务。
在查看 MarkLogic 管理界面时,我只能找到一个计划任务,该任务计划运行于2014-10-20T11:00:00
请让我知道我做错了什么或者是否缺少任何配置。
欢迎任何建议。
Thanks!