gradle - 通过ml-gradle为同一模块创建多个MarkLogic调度任务

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

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

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

我的整个应用程序配置将取决于属性文件。对于任何应用程序名称,都需要创建一个单独的实例。

我尝试通过 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": “管理无效(错误:FOER0000):任务数据库”}} 向/manage/v2/tasks/5389046897270663947/properties?group-id=Default 发送 PUT 请求时出错;记录请求正文以协助调试:{

期望:

想要部署和取消部署整个应用程序,包括基于应用程序名称作为单独实例安排任务

实际:

基于模块路径的 mlDeployTasks 每个任务都使用旧的现有数据库进行标识,并且无法创建新的任务服务器。

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

最佳答案

MarkLogic 的管理 API 将您的请求视为更改任务数据库的尝试,但它只允许更改计划任务的一个属性(启用任务 )。我认为您需要在这里做的是为不同的数据库设置不同的 task-path 值。这并不理想,但如果实现逻辑全部位于任务导入的库中,则不同的模块本身将非常轻量级。

关于gradle - 通过ml-gradle为同一模块创建多个MarkLogic调度任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54412102/

相关文章:

javascript - Marklogic 是否有编写 javascript 代码的框架?

XQuery,如何知道两组独特术语之间的共同术语数量

marklogic - 在 Marklogic 中监控备份和恢复

groovy - gradle 构建脚本中的 gradle 对象

xpath - 在 MarkLogic 上的 XQuery 中实现自然排序

xquery - 使用 mlcp、csv 文件和转换解析日期导入数据

docker - 在docker中安装MarkLogic的2节点集群

gradle - 如何禁用外部依赖 jar 的 Proguard 设置?

java - Intellij Idea 运行/调试配置和 Gradle 任务中的 SSH 隧道

gradle 和 manifest 上的 Android sdk 版本