2015-12-28 3 views
1

Есть ли способ передать параметры запроса в запланированный модуль задачи в MarkLogic. В документации, которую они упоминают, мы не можем дать? для передачи параметров запроса в пути задачи при создании планировщика. Есть ли альтернативный способ сделать это. Поскольку мы не могли этого сделать, мы динамически создаем модули и предоставляем им путь к задаче. Если мы сможем передать параметры, нам не нужно создавать файлы модулей для пути к задаче.Планировщик MarkLogic, Можем ли мы передать параметры плановому модулю?

ответ

0

Не могли бы вы прояснить немного больше - и, возможно, может быть создан более полный ответ.

Для «параметров запроса» обычно можно было бы найти HTTP-запросы. Вот почему это меня смущает.

Возможно, этого вам достаточно: Для нас различные программы, веб-страницы и т. Д. Создают файлы конфигурации XML. Затем мы используем запланированные задачи для логики программирования. Эти различные задачи не задаются ни с какими параметрами. Они просто знают, чтобы читать определенные типы файлов конфигурации и реагировать соответствующим образом.

+0

спасибо за ответ, да для определенной задачи мы также используем файлы конфигурации xml для запланированной задачи. Но здесь, в моей ситуации, мы используем admin apis для создания расписания при записи данных о расписании от пользователя, мы также собираем дополнительную информацию от пользователя для расписания. Поэтому мы хотели бы передать эти дополнительные параметры в запланированный модуль по его вызову. Это то, чего мы пытаемся достичь. Мы могли бы добавить эти пользовательские входы в файлы конфигурации, но как мы можем различать разные задачи и получать правильную конфигурационную информацию. –

+0

Ну, в планировщике задач работает только основной модуль, поэтому я не знаю, каким образом дать ему больше информации. Имея основной модуль, который запускает каждое время xx и имеет встроенную логику для обработки задач, определенных в файлах конфигурации XML (а затем, вероятно, нереста этих задач из основной задачи управления), кажется хорошим подходом (если вы не используете наводнение очереди задач).параметры в этой конфигурации xml могут даже включать любые параметры, которые вам нужно передать, а также такие вещи, как модуль, пространство имен и функция, например. –

1

Я хотел бы попробовать следующий подход вместо:

  1. магазин входов пользователя (дополнительную информацию от пользователя) в виде XML/JSON документа в базе данных контента. Этот документ будет включать время, в которое вы хотите выполнить задачу. Предположим, что эти документы находятся в коллекции «task-input»
  2. Создайте запланированную задачу, как вы сейчас делаете, но во всех случаях будет работать тот же модуль.
  3. Исправить этот модуль, чтобы запросить документы в коллекции «задача-ввод» с параметром времени в течение одной минуты текущего времени. Для каждого возвращаемого документа выполните код, который обрабатывает входы с документом.

Теперь у вас есть более управляемый данными способ реализации этого, которому нужен только один модуль + N запланированных задач + N документов с заданием задач. Не нужно передавать параметры в модуль (нет способа сделать это), вместо этого вы можете найти эти параметры с помощью простого запроса.

0

Ответ от @rjrudin - хороший подход. Вы также можете немного изменить этот подход, чтобы он искал файлы задач в базе данных контента. Каждый файл задачи содержит один путь к задаче (и любую дополнительную информацию, которую вы хотите пройти). Создайте задачу для каждого файла задачи. Вы можете посмотреть файлы задач как пользовательскую очередь, в которой сервер задач предоставляет рабочие потоки.

Альтернативно, вы также можете просто вызвать процесс непосредственно в точке, где вы определяете путь к задаче. Затем вы можете предоставить все внешние переменные, которые вам нужны, и вывести их во встроенную очередь сервера задач.

HTH!

Смежные вопросы