我正在尝试在同一 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/