1

我需要在 guidewire 中创建一个工作队列,但找不到关于此的 guidewire 文档。有人可以帮助我吗?

问候, 道格拉斯·雷森德

4

1 回答 1

8

你需要几样东西:

  1. 在 BatchProcessType typekey 中创建一个新的 Typecode(例如 MyNewCode)。此外,您需要根据需要添加类别:Schedulable、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. 在 scheduler-config.xml 中注册新的 BatchProcessType(可选)。为了它可以正常工作,类型代码需要 Schedulable 类别(第一步)
<ProcessSchedule process="MyNewCode">
    <CronSchedule minutes="*/10" />
</ProcessSchedule>
于 2018-10-25T13:23:27.023 回答