Вам нужно несколько вещей:
- Создайте новый Typecode в BatchProcessType typekey (например, MyNewCode).Кроме того, вам нужно добавить категории: Schedulable, UIRunnable или APIRunnable в соответствии с вашими потребностями.
- Создайте новый класс, расширяющий 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
}
}
Зарегистрируйте новый класс в work-queue.xml.Вы можете искать в документации дополнительные параметры, такие как retryLimit, retryInterval, server, env, maxpollinterval и т. Д.
<work-queue workQueueClass="example.MyWorkQueue" progressinterval="600000">
<worker instances="1" batchsize="5" />
</work-queue>
Зарегистрируйте новый BatchProcessType в scheduler-config.xml (необязательно).Для правильной работы Typecode нужна категория Schedulable (первый шаг)
<ProcessSchedule process="MyNewCode">
<CronSchedule minutes="*/10" />
</ProcessSchedule>