在Marklogic中将MLCP内容加载命令作为调度任务执行

在Marklogic中将MLCP内容加载命令作为调度任务执行,marklogic,mlcp,Marklogic,Mlcp,是否有任何可能的方法将MLCP用作Marklogic中的计划任务来批量加载数据Marklogic中的计划任务可以调用外部服务(使用HTTP),但它们无法运行外部命令。您确实有一些选择: 在Linux上使用cron或类似的方法,从外部计划MLCP作业 使用JavaScript或XQuery重新构建负载;您可以从文件系统检索数据,通过一些转换运行数据,并使用运行在MarkLogic中的模块将数据插入数据库 设置Java应用程序服务器,让计划任务向该服务器发出HTTP请求,并让Java应用程序服务器

是否有任何可能的方法将MLCP用作Marklogic中的计划任务来批量加载数据Marklogic中的计划任务可以调用外部服务(使用
HTTP
),但它们无法运行外部命令。您确实有一些选择:

  • 在Linux上使用cron或类似的方法,从外部计划
    MLCP
    作业
  • 使用
    JavaScript
    XQuery
    重新构建负载;您可以从文件系统检索数据,通过一些转换运行数据,并使用运行在
    MarkLogic
    中的模块将数据插入数据库
  • 设置Java应用程序服务器,让计划任务向该服务器发出
    HTTP
    请求,并让Java应用程序服务器调用
    MLCP

我想我应该从第一个选项开始,但哪一个是最好的取决于您的用例

不能通过计划任务调用mlcp;为此,我建议尝试ApacheCamel之类的工具

Camel有一个计时器组件和一个石英组件,这两个组件都可以用于调度

这里是一个示例Camel文件,它有一个路由(注释掉了,但仍然可以操作),该路由由一个计时器启动,然后该计时器将一个文件写入磁盘,并通过mlcp-接收它


我已经在Camel中完成了各种处理/调度,并最终通过mlcp摄取了内容,取得了很好的成功。我认为它非常适合您的用例,因此您可以利用mlcp最擅长的功能—尽可能快地将内容导入MarkLogic

那么,如何使用Marklogic Task sceduler执行以下功能,以便批量加载文档加载内容中提到的内容。例如,定期检查来自外部数据源(如网站、web服务等)的新内容检查外部数据源(如网站或服务)可以使用以下功能完成。计划任务调用主模块,因此您可以设置一个与http对话的计划,以获取某些内容(例如,RSS提要),然后将其存储在数据库中,如果需要,可以进行一些转换。我需要执行的是使用MLCP[Marklogic内容泵]从本地PC中的外部文件系统将大量数据加载到Marklogic数据库中。这可以直接使用Marklogic task SchedulerNot作为计划任务来完成。您需要为Tomcat(或类似产品)设置一个将启动MLCP的服务。MLCP是用Java编写的,因此在服务代码中可以直接调用MLCP JAR。mlcp.sh脚本使用
com.marklogic.contentpump.contentpump
类;这似乎是一个很好的起点。或者,您可以使用来执行MLCP脚本本身。有了它,您的计划任务将使用xdmp.httpGet()调用该服务。