This seems to be a problem with implementing Liferay planning. Quartz properly stores and restores a trigger and a job. But Liferay does not use your MessageListenerwork. Instead, it will wrap yours MessageListenerin MessageSenderJoband it will register yours MessageListener.
MessageSenderJob - , . MessageListener , .
. MessageListener . SchedulerEngineHelperUtil.schedule , MessageBusUtil.registerMessageListener. . .
, (- ):
@WebListener
public class SchedulerListener implements ServletContextListener, PortalLifecycle, MessageListener {
private SchedulerEventMessageListenerWrapper listenerWrapper;
public void contextInitialized(final ServletContextEvent sce) {
PortalLifecycleUtil.register(this, PortalLifecycle.METHOD_INIT);
}
public void portalInit() {
listenerWrapper = new SchedulerEventMessageListenerWrapper();
listenerWrapper.setGroupName(getClass().getName());
listenerWrapper.setJobName(getClass().getName());
listenerWrapper.setMessageListener(this);
listenerWrapper.afterPropertiesSet();
MessageBusUtil.registerMessageListener(DestinationNames.SCHEDULER_DISPATCH, listenerWrapper);
}
public void contextDestroyed(final ServletContextEvent event) {
if (listenerWrapper != null) {
MessageBusUtil.unregisterMessageListener(DestinationNames.SCHEDULER_DISPATCH, listenerWrapper);
}
}
public void portalDestroy() {
}
public void receive(final Message message) {
}
}
, listenerWrapper SchedulerEngineHelperUtil.schedule(...) portalInit().
, StorageType.PERSISTED: , , , .