Как создать WorkQueue Guidewire?

Мне нужно создать рабочую очередь в guidewire, но я не могу найти документацию по guidewire. Кто-нибудь может мне помочь, пожалуйста?

С уважением, Дуглас Резенде


person Douglas Rezende    schedule 24.10.2018    source источник


Ответы (1)


Вам нужно несколько вещей:

  1. Создайте новый код типа в ключе типа BatchProcessType (например, MyNewCode). Кроме того, вам нужно добавить категории: Scheduled, UIRunnable или APIRunnable в соответствии с вашими потребностями.
  2. Создайте новый класс, который расширяет WorkQueueBase следующим образом.
class MyWorkQueue extends WorkQueueBase<Message, StandardWorkItem> {
  private final static var _batchProcessType = BatchProcessType.TC_MYNEWCODE
  construct() {
    super(_batchProcessType, StandardWorkItem, Message)
  }

  override function findTargets(): Iterator<Message> {
    return Query.make(Message).select().iterator()
  }

  override function processWorkItem(p0: StandardWorkItem) {
    var bean = extractTarget(p0)
    // My process
  }
}

  1. Зарегистрируйте новый класс в work-queue.xml. Вы можете поискать в документации дополнительные параметры, такие как retryLimit, retryInterval, server, env, maxpollinterval и т. д.
<work-queue workQueueClass="example.MyWorkQueue" progressinterval="600000">
        <worker instances="1" batchsize="5" />
</work-queue>
  1. Зарегистрируйте новый тип BatchProcessType в файле scheduler-config.xml (необязательно). Для правильной работы коду типа нужна категория Scheduled (первый шаг)
<ProcessSchedule process="MyNewCode">
    <CronSchedule minutes="*/10" />
</ProcessSchedule>
person Carlos Duque    schedule 25.10.2018
comment
Я могу создать свою сущность и не использовать StandardWorkItem? - person Douglas Rezende; 13.11.2018
comment
Я не уверен, почему? - person Carlos Duque; 14.11.2018
comment
Я смог создать свой собственный рабочий элемент, очень просто, большое спасибо - person Douglas Rezende; 15.11.2018
comment
да, вы можете создать свой собственный рабочий элемент, единственное, что вам нужно, это реализовать объект WorkItem в своем пользовательском объекте, и он также должен быть активен (поскольку данные должны быть навсегда удалены из таблицы после ее использования). Также есть еще одна функция createWorkItem(bean: StandardWorkItem, bundle:Bundle). вы можете использовать это для сопоставления данных от работника к рабочему элементу. - person Aravind R Pillai; 11.04.2019
comment
Есть ли завершенный метод, который я могу переопределить, чтобы он выполнялся только один раз в конце всех итераций processWorkItem? - person krystine.e; 17.06.2019
comment
Нет, но вы можете создать плагин с интерфейсом IBatchCompletedNotification, там вы можете проверить завершенный процесс и выполнить действие. ${MODULE_HOME}/doc/wwhelp/wwhimpl/js/html/wwhelp.htm#href=Руководство системного администратора/batch.11.08.html - person Carlos Duque; 17.06.2019