Удалить запланированное задание в Marklogic - PullRequest
1 голос
/ 17 февраля 2020

Я пытаюсь удалить запланированное задание в Marklogi c каждый раз, когда вызывается моя функция. Он должен go выполнить задачи и удалить задачу, если она соответствует правильному типу пути и времени задачи. Однако я получаю <h1>500 Internal Server Error</h1> <dl> <dt>XDMP-UNEXPECTED: (err:XPST0003) Unexpected token syntax error, unexpected QName_</dt> <dd></dd> <dt>in /eval, at 10:20 [1.0-ml]</dt> Код должен удалить задачу, если она там есть, а затем добавить новую задачу при развертывании, таким образом, удаляя задачу, если она была в запланированных задачах, а затем создавая новую. Вот мой код:

      def delete_cron
            r = execute_query_camel_rest(%Q{
            xquery version "1.0-ml";
            import module namespace admin = "http://marklogic.com/xdmp/admin" at "/MarkLogic/admin.xqy";
            declare namespace group = "http://marklogic.com/xdmp/group";

            let $taskPath := "/my/task/path.xqy" (: Replace with .xqy file :)

            let $tasks :=
                for admin:group-get-scheduled-tasks($config, admin:group-get-id($config, "Default"))
                where $task/group:task-path = $taskPath and $task/group:task-type = minutely and $task/group:task-period = 1
            return $task

        let $deleteTask := admin:group-delete-scheduled-task($config,  admin:group-get-id($config, "Default"), $task)
        return admin:save-configuration($deleteTask)

  },
           {
              :db_name => @properties["ml.database-name"]
           }
  )

Я хочу, чтобы эта функция удаления вызывалась до того, как моя функция добавления задачи выглядит следующим образом.

1 Ответ

1 голос
/ 17 февраля 2020

Я успешно удалил задачу, указав определенные свойства и вызвав admin: group-delete-schedule-task.

         let $deleteTask :=
         for $task in $tasks
            where $task/group:task-period = 1 and $task/group:task-type = "minutely" and $task/group:task-path = $taskPath
         return $task

        let $config := admin:group-delete-scheduled-task($config,  admin:group-get-id($config, "Default"), $deleteTask)
        return admin:save-configuration($config)

Мне пришлось поменять мою на l oop, и добавил переменная $ deleteTask.

...