执行MLCP内容加载命令作为Marklogic中的计划任务

时间:2015-04-17 10:27:29

标签: marklogic mlcp

是否有任何可能的方法使用MLCP作为Marklogic中的计划任务批量加载数据

2 个答案:

答案 0 :(得分:2)

MarkLogic内的计划任务可以调用外部服务(使用HTTP),但他们无法运行外部命令。你有一些选择:

  • 在外部安排MLCP作业,在Linux上使用cron或其他内容;
  • 使用JavaScriptXQuery重新构建您的负载;您可以从文件系统中检索数据,通过某些转换运行它,并使用MarkLogic中运行的模块将其插入数据库;
  • 设置Java应用服务器,让您的计划任务向该服务器发出HTTP请求并让Java应用服务器调用MLCP

我认为我从第一个选项开始,但哪一个最好取决于您的用例。

答案 1 :(得分:2)

您无法通过计划任务调用mlcp;我建议尝试像Apache Camel这样的东西。

Camel有一个Timer组件和一个Quartz组件,其中任何一个都可以用于调度。

这是一个带有路由(注释掉但仍然可操作)的Camel文件示例,该路由Timer启动,然后将文件写入磁盘并通过mlcp摄取它 - https://github.com/rjrudin/ml-camel-client/blob/master/src/main/resources/META-INF/camel-routes.xml

我在Camel中进行各种处理/调度,然后最终通过mlcp摄取内容,取得了很大的成功。我认为它非常适合您的用例,因此您可以利用mlcp最擅长的功能 - 尽可能快地将内容添加到MarkLogic中。