2

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

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

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

我尝试通过 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":"Internal Server Error", "messageCode":"MANAGE-INVALID", "message":"MANAGE- INVALID (err:FOER0000): task-database"}} 向 /manage/v2/tasks/5389046897270663947/properties?group-id=Default 发送 PUT 请求时出错;记录请求正文以协助调试:{

期待 :

想要部署和取消部署整个应用程序,包括将基于 APPLICATION-NAME 的任务安排为单独的实例

实际的:

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

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

4

2 回答 2

1

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

于 2019-01-30T15:38:02.647 回答
1

尝试 ml-gradle 3.10.0 - 现在存在对此的支持 - 请参阅 ml-app-deployer 3.10.0 的发行说明(它提供 ml-gradle 中的大部分功能) - https://github.com/marklogic-社区/ml-app-deployer/releases/tag/3.10.0

于 2019-01-30T18:05:10.137 回答