public final void addJob( String jobName, String groupName, StorageType storageType, org.quartz.Trigger trigger) { JobKey jobKey = new JobKey(jobName, groupName); JobBuilder jobBuilder = JobBuilder.newJob(MessageSenderJob.class); jobBuilder = jobBuilder.withIdentity(jobKey); JobDetail jobDetail = jobBuilder.build(); JobDataMap jobDataMap = jobDetail.getJobDataMap(); jobDataMap.put(SchedulerEngine.MESSAGE, _jsonFactory.serialize(new Message())); jobDataMap.put(SchedulerEngine.DESTINATION_NAME, _TEST_DESTINATION_NAME); jobDataMap.put(SchedulerEngine.STORAGE_TYPE, storageType.toString()); JobState jobState = new JobState(TriggerState.NORMAL); jobState.addException(new Exception(), new Date()); jobDataMap.put(SchedulerEngine.JOB_STATE, JobStateSerializeUtil.serialize(jobState)); _jobs.put(jobKey, new Tuple(jobDetail, trigger, TriggerState.NORMAL)); }
private String _namespaceGroupName(String groupName, StorageType storageType) { String namespaceGroupName = storageType.toString(); namespaceGroupName = namespaceGroupName.concat(StringPool.POUND).concat(groupName); return namespaceGroupName; }
protected void schedule( Scheduler scheduler, StorageType storageType, Trigger trigger, String description, String destinationName, Message message) throws Exception { if (_jsonFactory == null) { throw new IllegalStateException("JSON factory not initialized"); } try { JobBuilder jobBuilder = JobBuilder.newJob(MessageSenderJob.class); jobBuilder.withIdentity(trigger.getJobKey()); jobBuilder.storeDurably(); JobDetail jobDetail = jobBuilder.build(); JobDataMap jobDataMap = jobDetail.getJobDataMap(); jobDataMap.put(SchedulerEngine.DESCRIPTION, description); jobDataMap.put(SchedulerEngine.DESTINATION_NAME, destinationName); jobDataMap.put(SchedulerEngine.MESSAGE, _jsonFactory.serialize(message)); jobDataMap.put(SchedulerEngine.STORAGE_TYPE, storageType.toString()); JobState jobState = new JobState( TriggerState.NORMAL, message.getInteger(SchedulerEngine.EXCEPTIONS_MAX_SIZE)); jobDataMap.put(SchedulerEngine.JOB_STATE, JobStateSerializeUtil.serialize(jobState)); unregisterMessageListener(scheduler, trigger.getJobKey()); synchronized (this) { scheduler.deleteJob(trigger.getJobKey()); scheduler.scheduleJob(jobDetail, trigger); } } catch (ObjectAlreadyExistsException oaee) { if (_log.isInfoEnabled()) { _log.info("Message is already scheduled"); } } }
public static SchedulerJobBean getSchedulerJob(SchedulerResponse schedulerResponse) { TriggerState triggerState = SchedulerEngineHelperUtil.getJobState(schedulerResponse); Date startTime = SchedulerEngineHelperUtil.getStartTime(schedulerResponse); Date endTime = SchedulerEngineHelperUtil.getEndTime(schedulerResponse); Date previousFireTime = SchedulerEngineHelperUtil.getPreviousFireTime(schedulerResponse); Date nextFireTime = SchedulerEngineHelperUtil.getNextFireTime(schedulerResponse); StorageType storageType = schedulerResponse.getStorageType(); SchedulerJobBean schedulerJobBean = new SchedulerJobBeanImpl(); schedulerJobBean.setJobName(schedulerResponse.getJobName()); schedulerJobBean.setGroupName(schedulerResponse.getGroupName()); schedulerJobBean.setTriggerState( triggerState == null ? SchedulerJobBean.NULL_VALUE_DISPLAY : triggerState.toString()); schedulerJobBean.setStartTime(startTime); schedulerJobBean.setEndTime(endTime); schedulerJobBean.setPreviousFireTime(previousFireTime); schedulerJobBean.setNextFireTime(nextFireTime); schedulerJobBean.setStorageType( storageType == null ? SchedulerJobBean.NULL_VALUE_DISPLAY : storageType.toString().trim()); return schedulerJobBean; }