我需要构建一个模块,让用户使用自定义触发器为多个任务设置调度。用户可以动态调度/取消调度/修改作业。 版本6.2的方式不再适用。
答案 0 :(得分:1)
要点 它现在的服务和需要扩展BaseSchedulerEntryMessageListener
@Component(immediate = true, service = BladeSchedulerEntryMessageListener.class)
public class BladeSchedulerEntryMessageListener
extends BaseSchedulerEntryMessageListener {
@Activate
@Modified
protected void activate() {
schedulerEntryImpl.setTrigger(
TriggerFactoryUtil.createTrigger(
getEventListenerClass(), getEventListenerClass(), 15,
TimeUnit.MINUTE));
_schedulerEngineHelper.register(
this, schedulerEntryImpl, DestinationNames.SCHEDULER_DISPATCH);
}
@Deactivate
protected void deactivate() {
_schedulerEngineHelper.unregister(this);
}
@Override
protected void doReceive(Message message) throws Exception {
if (_log.isInfoEnabled()) {
_log.info("Received message on schedule: " + message);
}
}
private final Log _log = LogFactoryUtil.getLog(
BladeSchedulerEntryMessageListener.class);
@Reference(target = ModuleServiceLifecycle.PORTAL_INITIALIZED, unbind = "-")
private volatile ModuleServiceLifecycle _moduleServiceLifecycle;
@Reference(unbind = "-")
private volatile SchedulerEngineHelper _schedulerEngineHelper;
@Reference(unbind = "-")
private volatile TriggerFactory _triggerFactory;
}