通过ml-gradle为同一模块创建多个MarkLogic Sc​​hedule Task

时间:2019-01-29 00:10:41

标签: gradle marklogic marklogic-8 marklogic-9 ml-gradle

我正在尝试在同一marklogic环境上创建应用程序的多个实例。我可以创建所有配置(用户,角色,数据库,林,应用程序服务器...),但是无法为具有相同模块路径的单独数据库安排单独的任务。

尝试运行在创建任务时失败的ml-gradle mldeployApps。

我的整个应用程序配置将取决于属性文件。对于任何APP-NAME,都需要创建单独的insi。

我尝试通过ml-gradle进行部署 mlDeployTasks失败,因为已有任务可用于模块路径。当尝试以新的失败运行secong时,因为它无法识别任务数据库

JSON:

      {
         "task-enabled":true,
         "task-path":"/ext/schedules/monitor.xqy",
         "task-root":"/",
         "task-type":"daily",
         "task-period":1,
         "task-start-time": "10:00:00",
         "task-database":"%%DATABASE%%",
         "task-modules":"%%MODULES_DATABASE%%",
         "task-user":"admin",
         "task-priority":"normal"
       }

错误:

记录HTTP响应正文以帮助调试:{“ errorResponse”:{“ statusCode”:“ 500”,“ status”:“内部服务器错误”,“ messageCode”:“ MANAGE-INVALID”,“ message”: “ MANAGE-INVALID(err:FOER0000):任务数据库”}} 向/ manage / v2 / tasks / 5389046897270663947 / properties?group-id = Default发送PUT请求时发生错误;记录请求主体以帮助调试:{

期望:

希望部署和取消部署整个应用程序,包括调度基于APPLICATION-NAME作为单独实例的任务

实际:

基于模块路径的mlDeployTasks用旧的现有数据库标识了每个任务,但无法创建新的任务服务器。

请为我建议实现相同目标的正确方法

2 个答案:

答案 0 :(得分:1)

MarkLogic的管理API是看到你的要求是企图改变task-database,但只允许一个计划任务,以改变一个属性(task-enabled)。我认为您需要在此处为​​不同的数据库设置不同的task-path值。这不是理想的,但如果实现逻辑是所有在年代由任务进口图书馆,不同的模块本身将是非常轻巧。

答案 1 :(得分:1)

尝试ml-gradle 3.10.0-现在对此提供支持-请参阅ml-app-deployer 3.10.0的发行说明(在ml-gradle中提供了大多数功能)-https://github.com/marklogic-community/ml-app-deployer/releases/tag/3.10.0