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));
    }
예제 #2
0
    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;
  }