@Override public String getName() throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { return js.getName(); } return ""; }
@Override public List<Job> getNextScheduleJobs() throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { return js.getNextScheduleJobs(); } return Collections.emptyList(); }
@Override public void remove(String jobId) throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { js.remove(jobId); } }
@Override public void start() throws Exception { this.started.set(true); getInternalScheduler(); super.start(); }
@Override public List<Job> getAllJobs() throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { return js.getAllJobs(); } return Collections.emptyList(); }
@Override public void remove(long time) throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { js.remove(time); } }
@Override public void removeListener(JobListener l) throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { js.removeListener(l); } }
@Override public void schedule(String jobId, ByteSequence payload, long delay) throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { js.schedule(jobId, payload, delay); } }
@Override public void schedule(String jobId, ByteSequence payload, String cronEntry) throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { js.schedule(jobId, payload, cronEntry); } }
@Override public void startDispatching() throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { js.startDispatching(); } }
@Override public void addListener(JobListener l) throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { js.addListener(l); } }
@Override public List<Job> getAllJobs(long start, long finish) throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { return js.getAllJobs(start, finish); } return Collections.emptyList(); }
@Override public long getNextScheduleTime() throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { return js.getNextScheduleTime(); } return 0; }
@Override public void removeAllJobs() throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { js.removeAllJobs(); } }
@Override public void removeAllJobs(long start, long finish) throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { js.removeAllJobs(start, finish); } }
@Override public void schedule(String jobId, ByteSequence payload, String cronEntry, long start, long period, int repeat) throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { js.schedule(jobId, payload, cronEntry, start, period, repeat); } }
@Override public void stopDispatching() throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { js.stopDispatching(); } } }
JobScheduler scheduler = getInternalScheduler(); ActiveMQDestination replyTo = messageSend.getReplyTo();
private void doSchedule(Message messageSend, Object cronValue, Object periodValue, Object delayValue) throws Exception { long delay = 0; long period = 0; int repeat = 0; String cronEntry = ""; // clear transaction context Message msg = messageSend.copy(); msg.setTransactionId(null); org.apache.activemq.util.ByteSequence packet = wireFormat.marshal(msg); if (cronValue != null) { cronEntry = cronValue.toString(); } if (periodValue != null) { period = (Long) TypeConversionSupport.convert(periodValue, Long.class); } if (delayValue != null) { delay = (Long) TypeConversionSupport.convert(delayValue, Long.class); } Object repeatValue = msg.getProperty(ScheduledMessage.AMQ_SCHEDULED_REPEAT); if (repeatValue != null) { repeat = (Integer) TypeConversionSupport.convert(repeatValue, Integer.class); } //job id should be unique for every job (Same format as MessageId) MessageId jobId = new MessageId(messageSend.getMessageId().getProducerId(), longGenerator.getNextSequenceId()); getInternalScheduler().schedule(jobId.toString(), new ByteSequence(packet.data, packet.offset, packet.length), cronEntry, delay, period, repeat); }
@Override public void schedule(String jobId, ByteSequence payload, long delay) throws Exception { JobScheduler js = this.broker.getInternalScheduler(); if (js != null) { js.schedule(jobId, payload, delay); } }