001
014
015 package com.liferay.portal.scheduler;
016
017 import com.liferay.portal.kernel.messaging.DestinationNames;
018 import com.liferay.portal.kernel.messaging.Message;
019 import com.liferay.portal.kernel.messaging.MessageBusUtil;
020 import com.liferay.portal.kernel.scheduler.CronTrigger;
021 import com.liferay.portal.kernel.scheduler.SchedulerEngine;
022 import com.liferay.portal.kernel.scheduler.SchedulerException;
023 import com.liferay.portal.kernel.scheduler.Trigger;
024 import com.liferay.portal.kernel.scheduler.messaging.SchedulerRequest;
025
026 import java.util.List;
027
028
032 public class SchedulerEngineProxy implements SchedulerEngine {
033
034 public List<SchedulerRequest> getScheduledJobs(String groupName)
035 throws SchedulerException {
036
037 try {
038 SchedulerRequest schedulerRequest =
039 SchedulerRequest.createRetrieveRequest(
040 new CronTrigger(groupName, groupName, null));
041
042 List<SchedulerRequest> schedulerRequests =
043 (List<SchedulerRequest>)MessageBusUtil.sendSynchronousMessage(
044 DestinationNames.SCHEDULER_ENGINE, schedulerRequest,
045 DestinationNames.SCHEDULER_ENGINE_RESPONSE);
046
047 return schedulerRequests;
048 }
049 catch (Exception e) {
050 throw new SchedulerException(e);
051 }
052 }
053
054 public void schedule(
055 Trigger trigger, String description, String destinationName,
056 Message message) {
057
058 SchedulerRequest schedulerRequest =
059 SchedulerRequest.createRegisterRequest(
060 trigger, description, destinationName, message);
061
062 MessageBusUtil.sendMessage(
063 DestinationNames.SCHEDULER_ENGINE, schedulerRequest);
064 }
065
066 public void shutdown() {
067 MessageBusUtil.sendMessage(
068 DestinationNames.SCHEDULER_ENGINE,
069 SchedulerRequest.createShutdownRequest());
070 }
071
072 public void start() {
073 MessageBusUtil.sendMessage(
074 DestinationNames.SCHEDULER_ENGINE,
075 SchedulerRequest.createStartupRequest());
076 }
077
078 public void unschedule(Trigger trigger) {
079 SchedulerRequest schedulerRequest =
080 SchedulerRequest.createUnregisterRequest(trigger);
081
082 MessageBusUtil.sendMessage(
083 DestinationNames.SCHEDULER_ENGINE, schedulerRequest);
084 }
085
086 }