Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MarkLogic调度程序,我们可以将参数传递给调度模块吗?_Marklogic - Fatal编程技术网

MarkLogic调度程序,我们可以将参数传递给调度模块吗?

MarkLogic调度程序,我们可以将参数传递给调度模块吗?,marklogic,Marklogic,是否有方法将请求参数传递给MarkLogic中的计划任务模块。在文件中,他们提到了我们不能提供的信息?创建计划程序时在任务路径中传递请求参数。有没有其他方法可以做到这一点。由于我们无法做到这一点,我们正在动态创建模块并将它们作为任务路径提供。如果我们可以传递参数,那么我们就不必为任务路径创建模块文件。请您进一步澄清一下,也许可以创建一个更完整的答案 对于“请求参数”,人们通常会想到http请求。这就是为什么这让我感到困惑 也许这对你来说已经足够了: 对于我们来说,各种程序、网页等都会创建XML配

是否有方法将请求参数传递给MarkLogic中的计划任务模块。在文件中,他们提到了我们不能提供的信息?创建计划程序时在任务路径中传递请求参数。有没有其他方法可以做到这一点。由于我们无法做到这一点,我们正在动态创建模块并将它们作为任务路径提供。如果我们可以传递参数,那么我们就不必为任务路径创建模块文件。

请您进一步澄清一下,也许可以创建一个更完整的答案

对于“请求参数”,人们通常会想到http请求。这就是为什么这让我感到困惑

也许这对你来说已经足够了:
对于我们来说,各种程序、网页等都会创建XML配置文件。然后,我们将计划任务用于编程逻辑。这些不同的任务没有设置任何参数。他们只知道读取某些类型的配置文件并做出适当的反应。

我会尝试以下方法:

  • 将用户的输入(来自用户的附加信息)作为XML/JSON文档存储在内容数据库中。此文档将包括您希望任务运行的时间。假设这些文档位于“任务输入”集合中
  • 按当前所做的操作创建计划任务,但在所有情况下都将运行相同的模块
  • 重做该模块以在当前时间的一分钟内查询“任务输入”集合中具有时间参数的文档。对于返回的每个文档,执行一些处理文档输入的代码

  • 现在,您有了一种更为数据驱动的实现方法,它只需要一个模块+N个计划任务+N个任务输入文档。无需将参数传递给模块(没有方法这样做),而是通过简单的查询找到这些参数

    @rjrudin的答案是一个很好的方法。您还可以稍微改变这种方法,使其在内容数据库中查找任务文件。每个任务文件包含一个任务路径(以及您希望传递的任何额外信息)。为每个任务文件生成一个任务。您可以将任务文件视为任务服务器提供工作线程的自定义队列

    或者,您也可以直接在确定任务路径的点生成一个进程。然后,您可以提供所需的所有外部变量,并将其推送到内置任务服务器队列


    感谢您的回复,是的,对于某些任务,我们还使用xml配置文件来执行计划任务。但在我的情况下,我们使用管理API来创建计划,同时从用户获取计划细节,我们还从用户获取计划的附加信息。因此,我们希望在调用调度模块时将这些附加参数传递给调度模块。这就是我们正在努力实现的目标。我们也可以将这些用户输入添加到配置文件中,但是我们如何区分不同的任务并获取正确的配置信息呢。拥有一个每xx次运行一次的主模块,并具有内置逻辑来处理XML配置文件中定义的任务(然后可能从主控制任务中派生这些任务),这似乎是一个不错的方法(只要您不打算淹没任务队列)。这个xml配置中的参数甚至可以包括您需要传递的任何参数,例如模块、名称空间和函数。