如何创建WorkQueue Guidewire?

时间:2018-10-24 22:31:56

标签: gosu guidewire

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

关于, 道格拉斯·里曾德(Douglas Rezende)

1 个答案:

答案 0 :(得分:4)

您需要满足以下条件:

  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>