【发布时间】:2023-04-10 06:22:01
【问题描述】:
我正在使用 ML 8。
有没有办法检查任务任务服务器上的队列大小是否为零(所有衍生的任务都被消耗掉了)?
为什么我需要这个:
我必须生成 10k 任务,这些 10K 任务将在 D 驱动器中创建 10K xml 文件(使用 xdmp:save)
一旦生成了这 10K 文件,我就生成了另一个 20k 任务,并且必须将 20K xml 文件保存在 D 驱动器中,在这 20K 任务中,我必须利用之前生成的 10K 任务的结果(保存在 D 驱动器中的 10k 文件)
然后生成另一个 25k 任务,再次将 25K 文件保存在 D 驱动器中,并且在处理时需要先前生成的任务的结果,即 20K xml 文件。
等等……
目前我正在手动执行此操作,我的意思是我将生成第一组 10K 文件,并将在 8001 端口监视任务服务器状态。一旦队列大小达到零,我将去 qconsole 并生成另外 20K 文件等等......
我想用代码来实现。
类似:
生成 10K 文件; 等到所有生成的 10k 任务完成(这必须使用代码检查); 产生另外 20k 个任务等等......
请帮忙,如果需要更多详细信息,请告诉我。
【问题讨论】:
-
是否有理由希望通过代码而不是通过 MLCP、Corb 或数据移动 API 等外部工具来完成此任务?您最终尝试使用什么机制来重新检查是否该重新开始 - 您现在在查询控制台中手动点击运行。您是否计划过一项计划任务来代替人工步骤?
-
对 MLCP 或 Corb 不太了解。目前我会去
IP:8001端口检查任务服务器的状态,我会继续检查任务服务器的状态页面,因为队列大小手动归零我将从qconsole运行第二组。我无法使用计划任务,因为我不知道上一个任务的完成时间。 -
但如果您在代码中执行此操作并确保队列为空,那么您可以使用计划任务 - 如果未完成,则不执行任何操作,否则开始下一批。话虽如此,请参阅我对使用其他工具的回复和建议。
-
你也可以考虑使用taskbot github.com/mblakele/taskbot
标签: marklogic marklogic-8