Java 类org.quartz.impl.matchers.GroupMatcher 实例源码

项目:MonitorPlatform    文件:JobConfigService.java   
/**
 * 获取所有计划中的任务列表
 * 
 * @return
 * @throws SchedulerException
 */
public List<ScheduleJob> getAllJob() throws SchedulerException {
    Scheduler scheduler = schedulerFactoryBean.getScheduler();
    GroupMatcher<JobKey> matcher = GroupMatcher.anyJobGroup();
    Set<JobKey> jobKeys = scheduler.getJobKeys(matcher);
    List<ScheduleJob> jobList = new ArrayList<ScheduleJob>();
    for (JobKey jobKey : jobKeys) {
        List<? extends Trigger> triggers = scheduler.getTriggersOfJob(jobKey);
        for (Trigger trigger : triggers) {
            ScheduleJob job = new ScheduleJob();
            job.setName(jobKey.getName());
            job.setGroup(jobKey.getGroup());
            job.setDescription("触发器:" + trigger.getKey());
            Trigger.TriggerState triggerState = scheduler.getTriggerState(trigger.getKey());
            job.setStatus(triggerState.name());
            if (trigger instanceof CronTrigger) {
                CronTrigger cronTrigger = (CronTrigger) trigger;
                String cronExpression = cronTrigger.getCronExpression();
                job.setCron(cronExpression);
            }
            jobList.add(job);
        }
    }
    return jobList;
}
项目:lams    文件:DefaultClusteredJobStore.java   
/**
 * <p>
 * Resume (un-pause) all of the <code>{@link Trigger}s</code> in the given group.
 * </p>
 * <p>
 * If any <code>Trigger</code> missed one or more fire-times, then the <code>Trigger</code>'s misfire instruction will
 * be applied.
 * </p>
 */
@Override
public Collection<String> resumeTriggers(GroupMatcher<TriggerKey> matcher) throws JobPersistenceException {
  Collection<String> groups = new HashSet<String>();
  lock();
  try {
    Set<TriggerKey> triggerKeys = getTriggerKeys(matcher);

    for (TriggerKey triggerKey : triggerKeys) {
      TriggerWrapper tw = triggerFacade.get(triggerKey);
      if (tw != null) {
        String jobGroup = tw.getJobKey().getGroup();

        if (jobFacade.pausedGroupsContain(jobGroup)) {
          continue;
        }
        groups.add(triggerKey.getGroup());
      }
      resumeTrigger(triggerKey);
    }
    triggerFacade.removeAllPausedGroups(groups);
  } finally {
    unlock();
  }
  return groups;
}
项目:lams    文件:DefaultClusteredJobStore.java   
/**
 * <p>
 * Resume (un-pause) all triggers - equivalent of calling <code>resumeTriggerGroup(group)</code> on every group.
 * </p>
 * <p>
 * If any <code>Trigger</code> missed one or more fire-times, then the <code>Trigger</code>'s misfire instruction will
 * be applied.
 * </p>
 * 
 * @see #pauseAll()
 */
@Override
public void resumeAll() throws JobPersistenceException {

  lock();
  try {
    jobFacade.clearPausedJobGroups();
    List<String> names = getTriggerGroupNames();

    for (String name : names) {
      resumeTriggers(GroupMatcher.triggerGroupEquals(name));
    }
  } finally {
    unlock();
  }
}
项目:abhot    文件:KairosDBSchedulerImpl.java   
@Override
@SuppressWarnings("unchecked")
public Set<String> getScheduledJobIds() throws KairosDBException
{
    Set<String> scheduledJobs = new HashSet<String>();
    try
    {
        for (String groupName : scheduler.getJobGroupNames())
        {
            for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName)))
            {
                scheduledJobs.add(jobKey.getName());
            }
        }
    }
    catch (SchedulerException e)
    {
        throw new KairosDBException("Could not get scheduled jobs." + e);
    }

    return scheduledJobs;
}
项目:lams    文件:RAMJobStore.java   
/**
 * <p>
 * Resume (un-pause) all of the <code>{@link Trigger}s</code> in the
 * given group.
 * </p>
 *
 * <p>
 * If any <code>Trigger</code> missed one or more fire-times, then the
 * <code>Trigger</code>'s misfire instruction will be applied.
 * </p>
 *
 */
public List<String> resumeTriggers(GroupMatcher<TriggerKey> matcher) {
    Set<String> groups = new HashSet<String>();

    synchronized (lock) {
        Set<TriggerKey> keys = getTriggerKeys(matcher);

        for (TriggerKey triggerKey: keys) {
            groups.add(triggerKey.getGroup());
            if(triggersByKey.get(triggerKey) != null) {
                String jobGroup = triggersByKey.get(triggerKey).jobKey.getGroup();
                if(pausedJobGroups.contains(jobGroup)) {
                    continue;
                }
            }
            resumeTrigger(triggerKey);
        }
        for (String group : groups) {
            pausedTriggerGroups.remove(group);
        }
    }

    return new ArrayList<String>(groups);
}
项目:jaffa-framework    文件:QuartzSchedulerHelper.java   
/**
 * Returns all Jobs from the Scheduler.
 *
 * @return all Jobs from the Scheduler.
 * @throws FrameworkException    in case any internal error occurs.
 * @throws ApplicationExceptions Indicates application error(s).
 */
private List<ScheduledTask> getTaskList() throws FrameworkException,
        ApplicationExceptions {
  List<ScheduledTask> tasks = null;
  try {
    final List<String> names = scheduler.getJobGroupNames();
    if (names != null && 0 < names.size()) {
      tasks = new LinkedList<ScheduledTask>();
      for (final String groupName : names) {
        for (final JobKey jobKey : scheduler.getJobKeys(GroupMatcher
                .jobGroupEquals(groupName))) {
          final JobDetail jobDetail = scheduler.getJobDetail(jobKey);
          final List<? extends Trigger> triggers = scheduler
                  .getTriggersOfJob(jobKey);
          final ScheduledTask task = jobAndTriggerToTask(jobDetail, triggers);
          tasks.add(task);
        }
      }
    }
    return tasks;
  } catch (SchedulerException e) {
    LOGGER.error("Error in retriving Jobs from the Scheduler", e);
    throw new JaffaSchedulerFrameworkException(
            JaffaSchedulerFrameworkException.TASK_RETRIEVE_ERROR, null, e);
  }
}
项目:lams    文件:RemoteMBeanScheduler.java   
/**
 * <p>
 * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>,
 * passing the <code>SchedulingContext</code> associated with this
 * instance.
 * </p>
 */
public void pauseJobs(GroupMatcher<JobKey> matcher) throws SchedulerException {
    String operation = null;
    switch (matcher.getCompareWithOperator()) {
        case EQUALS:
            operation = "pauseJobGroup";
            break;
        case STARTS_WITH:
            operation = "pauseJobsStartingWith";
            break;
        case ENDS_WITH:
            operation = "pauseJobsEndingWith";
            break;
        case CONTAINS:
            operation = "pauseJobsContaining";
        case ANYTHING:
            operation = "pauseJobsAll";
    }

    invoke(
            operation,
            new Object[] { matcher.getCompareToValue() },
            new String[] { String.class.getName() });
}
项目:lams    文件:JobStoreSupport.java   
/**
 * <p>
 * Pause all triggers - equivalent of calling <code>pauseTriggerGroup(group)</code>
 * on every group.
 * </p>
 * 
 * <p>
 * When <code>resumeAll()</code> is called (to un-pause), trigger misfire
 * instructions WILL be applied.
 * </p>
 * 
 * @see #resumeAll(Connection)
 * @see #pauseTriggerGroup(java.sql.Connection, org.quartz.impl.matchers.GroupMatcher)
 */
public void pauseAll(Connection conn)
    throws JobPersistenceException {

    List<String> names = getTriggerGroupNames(conn);

    for (String name: names) {
        pauseTriggerGroup(conn, GroupMatcher.triggerGroupEquals(name));
    }

    try {
        if (!getDelegate().isTriggerGroupPaused(conn, ALL_GROUPS_PAUSED)) {
            getDelegate().insertPausedTriggerGroup(conn, ALL_GROUPS_PAUSED);
        }

    } catch (SQLException e) {
        throw new JobPersistenceException(
                "Couldn't pause all trigger groups: " + e.getMessage(), e);
    }

}
项目:lams    文件:JobStoreSupport.java   
/**
 * protected
 * <p>
 * Resume (un-pause) all triggers - equivalent of calling <code>resumeTriggerGroup(group)</code>
 * on every group.
 * </p>
 * 
 * <p>
 * If any <code>Trigger</code> missed one or more fire-times, then the
 * <code>Trigger</code>'s misfire instruction will be applied.
 * </p>
 * 
 * @see #pauseAll(Connection)
 */
public void resumeAll(Connection conn)
    throws JobPersistenceException {

    List<String> names = getTriggerGroupNames(conn);

    for (String name: names) {
        resumeTriggerGroup(conn, GroupMatcher.triggerGroupEquals(name));
    }

    try {
        getDelegate().deletePausedTriggerGroup(conn, ALL_GROUPS_PAUSED);
    } catch (SQLException e) {
        throw new JobPersistenceException(
                "Couldn't resume all trigger groups: " + e.getMessage(), e);
    }
}
项目:lams    文件:StdJDBCDelegate.java   
/**
 * <p>
 * Update all of the triggers of the given group to the given new state, if
 * they are in the given old state.
 * </p>
 * 
 * @param conn
 *          the DB connection
 * @param matcher
 *          the groupMatcher to evaluate the triggers against
 * @param newState
 *          the new state for the trigger group
 * @param oldState
 *          the old state the triggers must be in
 * @return int the number of rows updated
 * @throws SQLException
 */
public int updateTriggerGroupStateFromOtherState(Connection conn,
        GroupMatcher<TriggerKey> matcher, String newState, String oldState)
    throws SQLException {
    PreparedStatement ps = null;

    try {
        ps = conn
                .prepareStatement(rtp(UPDATE_TRIGGER_GROUP_STATE_FROM_STATE));
        ps.setString(1, newState);
        ps.setString(2, toSqlLikeClause(matcher));
        ps.setString(3, oldState);

        return ps.executeUpdate();
    } finally {
        closeStatement(ps);
    }
}
项目:lams    文件:StdJDBCDelegate.java   
public List<String> selectTriggerGroups(Connection conn, GroupMatcher<TriggerKey> matcher) throws SQLException {
    PreparedStatement ps = null;
    ResultSet rs = null;

    try {
        ps = conn.prepareStatement(rtp(SELECT_TRIGGER_GROUPS_FILTERED));
        ps.setString(1, toSqlLikeClause(matcher));
        rs = ps.executeQuery();

        LinkedList<String> list = new LinkedList<String>();
        while (rs.next()) {
            list.add(rs.getString(1));
        }

        return list;
    } finally {
        closeResultSet(rs);
        closeStatement(ps);
    }
}
项目:springboot-quartz    文件:ScheduleJobService.java   
public List<ScheduleJob> getAllJobList(){  
    List<ScheduleJob> jobList = new ArrayList<>();  
    try {  
        GroupMatcher<JobKey> matcher = GroupMatcher.anyJobGroup();  
        Set<JobKey> jobKeySet = scheduler.getJobKeys(matcher);  
        for (JobKey jobKey : jobKeySet){  
            List<? extends Trigger> triggers = scheduler.getTriggersOfJob(jobKey);  
            for (Trigger trigger : triggers){  
                ScheduleJob scheduleJob = new ScheduleJob();  
                this.wrapScheduleJob(scheduleJob,scheduler,jobKey,trigger);  
                jobList.add(scheduleJob);  
            }  
        }  
    } catch (SchedulerException e) {  
        e.printStackTrace();   
    }  
    return jobList;  
}
项目:taboola-cronyx    文件:QuartzSchedulerServiceImpl.java   
private List<TriggerDefinition> getTriggersForGroup(GroupMatcher<TriggerKey> groupMatcher) {
    try {
        return scheduler.getTriggerKeys(groupMatcher).stream()
                        .map(this::getTriggerSafe)
                        .filter(trigger -> trigger != null)
                        .map(quartzToCronyxSelector::convert)
                        .map(this::enhanceTriggerDefinition)
                        .collect(Collectors.toList());
    } catch (SchedulerException e) {
        throw new SchedulingException(e);
    }
}
项目:lams    文件:QuartzSchedulerMBeanImpl.java   
public List<String> getJobNames(String groupName) throws Exception {
    try {
        List<String> jobNames = new ArrayList<String>();
        for(JobKey key: scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) {
            jobNames.add(key.getName());
        }
        return jobNames;
    } catch (Exception e) {
        throw newPlainException(e);
    }
}
项目:automat    文件:SchedulerManager.java   
public List<TaskScheduled> getAllJobDetail() {
    List<TaskScheduled> result = new LinkedList<TaskScheduled>();
    try {
        GroupMatcher<JobKey> matcher = GroupMatcher.jobGroupContains("");
        Set<JobKey> jobKeys = scheduler.getJobKeys(matcher);
        for (JobKey jobKey : jobKeys) {
            JobDetail jobDetail = scheduler.getJobDetail(jobKey);
            List<? extends Trigger> triggers = scheduler.getTriggersOfJob(jobKey);
            for (Trigger trigger : triggers) {
                TaskScheduled job = new TaskScheduled();
                job.setTaskName(jobKey.getName());
                job.setTaskGroup(jobKey.getGroup());
                TriggerState triggerState = scheduler.getTriggerState(trigger.getKey());
                job.setStatus(triggerState.name());
                if (trigger instanceof CronTrigger) {
                    CronTrigger cronTrigger = (CronTrigger)trigger;
                    String cronExpression = cronTrigger.getCronExpression();
                    job.setTaskCron(cronExpression);
                }
                job.setPreviousFireTime(trigger.getPreviousFireTime());
                job.setNextFireTime(trigger.getNextFireTime());
                JobDataMap jobDataMap = trigger.getJobDataMap();
                job.setTaskType(jobDataMap.getString("taskType"));
                job.setTargetSystem(jobDataMap.getString("targetSystem"));
                job.setTargetObject(jobDataMap.getString("targetObject"));
                job.setTargetMethod(jobDataMap.getString("targetMethod"));
                job.setContactName(jobDataMap.getString("contactName"));
                job.setContactEmail(jobDataMap.getString("contactEmail"));
                job.setTaskDesc(jobDetail.getDescription());
                String jobClass = jobDetail.getJobClass().getSimpleName();
                if (jobClass.equals("StatefulJob")) {
                    job.setJobType("statefulJob");
                } else if (jobClass.equals("DefaultJob")) {
                    job.setJobType("job");
                }
                result.add(job);
            }
        }
    } catch (Exception e) {
        logger.error("Try to load All JobDetail cause error : ", e);
    }
    return result;
}
项目:plugin-vm    文件:VmResource.java   
/**
 * Remove all schedules matching the given predicate from the current
 * scheduler, then from the data base.
 */
private void unscheduleAll(final Predicate<TriggerKey> predicate) throws SchedulerException {
    // Remove current schedules from the memory
    final Scheduler scheduler = vmSchedulerFactoryBean.getObject();
    for (final TriggerKey triggerKey : scheduler.getTriggerKeys(GroupMatcher.groupEquals(SCHEDULE_TRIGGER_GROUP))) {
        if (predicate.test(triggerKey)) {
            // Match subscription and operation, unschedule this trigger
            scheduler.unscheduleJob(triggerKey);
        }
    }
}
项目:plugin-vm    文件:VmResourceTest.java   
@After
public void cleanTrigger() throws SchedulerException {

    // Remove all previous VM trigger
    final Scheduler scheduler = vmSchedulerFactoryBean.getScheduler();
    scheduler.unscheduleJobs(new ArrayList<>(scheduler.getTriggerKeys(GroupMatcher.groupEquals(VmResource.SCHEDULE_TRIGGER_GROUP))));
}
项目:lams    文件:EmailNotificationsAction.java   
/**
    * Renders a page listing all scheduled emails.
    */
   public ActionForward showScheduledEmails(ActionMapping mapping, ActionForm form, HttpServletRequest request,
    HttpServletResponse response) throws IOException, ServletException, SchedulerException {
getUserManagementService();
Scheduler scheduler = getScheduler();
TreeSet<EmailScheduleMessageJobDTO> scheduleList = new TreeSet<EmailScheduleMessageJobDTO>();
Long lessonId = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID, true);
boolean isLessonNotifications = (lessonId != null);
Integer organisationId = WebUtil.readIntParam(request, AttributeNames.PARAM_ORGANISATION_ID, true);
if (isLessonNotifications) {
    if (!getSecurityService().isLessonMonitor(lessonId, getCurrentUser().getUserID(),
        "show scheduled lesson email notifications", false)) {
    response.sendError(HttpServletResponse.SC_FORBIDDEN, "The user is not a monitor in the lesson");
    return null;
    }
} else {
    if (!getSecurityService().isGroupMonitor(organisationId, getCurrentUser().getUserID(),
        "show scheduled course email notifications", false)) {
    response.sendError(HttpServletResponse.SC_FORBIDDEN, "The user is not a monitor in the organisation");
    return null;
    }
}

Set<TriggerKey> triggerKeys = scheduler
    .getTriggerKeys(GroupMatcher.triggerGroupEquals(Scheduler.DEFAULT_GROUP));
for (TriggerKey triggerKey : triggerKeys) {
    String triggerName = triggerKey.getName();
    if (triggerName.startsWith(EmailNotificationsAction.TRIGGER_PREFIX_NAME)) {
    Trigger trigger = scheduler.getTrigger(triggerKey);
    JobDetail jobDetail = scheduler.getJobDetail(trigger.getJobKey());
    JobDataMap jobDataMap = jobDetail.getJobDataMap();

    // filter triggers
    if (isLessonNotifications) {
        Object jobLessonId = jobDataMap.get(AttributeNames.PARAM_LESSON_ID);
        if ((jobLessonId == null) || (!lessonId.equals(jobLessonId))) {
        continue;
        }
    } else {
        Object jobOrganisationId = jobDataMap.get(AttributeNames.PARAM_ORGANISATION_ID);
        if ((jobOrganisationId == null) || (!organisationId.equals(jobOrganisationId))) {
        continue;
        }
    }

    Date triggerDate = trigger.getNextFireTime();
    String emailBody = WebUtil.convertNewlines((String) jobDataMap.get("emailBody"));
    int searchType = (Integer) jobDataMap.get("searchType");
    EmailScheduleMessageJobDTO emailScheduleJobDTO = new EmailScheduleMessageJobDTO();
    emailScheduleJobDTO.setTriggerName(triggerName);
    emailScheduleJobDTO.setTriggerDate(triggerDate);
    emailScheduleJobDTO.setEmailBody(emailBody);
    emailScheduleJobDTO.setSearchType(searchType);
    scheduleList.add(emailScheduleJobDTO);
    }
}

request.setAttribute("scheduleList", scheduleList);
request.setAttribute(AttributeNames.PARAM_LESSON_ID, lessonId);
request.setAttribute(AttributeNames.PARAM_ORGANISATION_ID, organisationId);

return mapping.findForward("scheduledEmailList");
   }
项目:lams    文件:EmailProgressAction.java   
/**
    * Gets learners or monitors of the lesson and organisation containing it.
    * 
    * @throws SchedulerException
    */
   public ActionForward getEmailProgressDates(ActionMapping mapping, ActionForm form, HttpServletRequest request,
    HttpServletResponse response) throws IOException, JSONException, SchedulerException {
Long lessonId = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID);
if (!getSecurityService().isLessonMonitor(lessonId, getCurrentUser().getUserID(), "get class members", false)) {
    response.sendError(HttpServletResponse.SC_FORBIDDEN, "User is not a monitor in the lesson");
    return null;
}

HttpSession ss = SessionManager.getSession();
UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER);

JSONObject responseJSON = new JSONObject();
JSONArray datesJSON = new JSONArray();

// find all the current dates set up to send the emails
Scheduler scheduler = getScheduler();
String triggerPrefix = getTriggerPrefix(lessonId);
SortedSet<Date> currentDatesSet = new TreeSet<Date>();
Set<TriggerKey> triggerKeys = scheduler
    .getTriggerKeys(GroupMatcher.triggerGroupEquals(Scheduler.DEFAULT_GROUP));
for (TriggerKey triggerKey : triggerKeys) {
    String triggerName = triggerKey.getName();
    if (triggerName.startsWith(triggerPrefix)) {
    Trigger trigger = scheduler.getTrigger(triggerKey);
    JobDetail jobDetail = scheduler.getJobDetail(trigger.getJobKey());
    JobDataMap jobDataMap = jobDetail.getJobDataMap();

    // get only the trigger for the current lesson

    Object jobLessonId = jobDataMap.get(AttributeNames.PARAM_LESSON_ID);
    if (lessonId.equals(jobLessonId)) {

        Date triggerDate = trigger.getNextFireTime();
        currentDatesSet.add(triggerDate);
    }
    }
}

for (Date date : currentDatesSet) {
    datesJSON.put(createDateJSON(request.getLocale(), user, date, null));
}
responseJSON.put("dates", datesJSON);

response.setContentType("application/json;charset=utf-8");
response.getWriter().write(responseJSON.toString());
return null;
   }
项目:iBase4J    文件:SchedulerManager.java   
public List<TaskScheduled> getAllJobDetail() {
    List<TaskScheduled> result = new LinkedList<TaskScheduled>();
    try {
        GroupMatcher<JobKey> matcher = GroupMatcher.jobGroupContains("");
        Set<JobKey> jobKeys = scheduler.getJobKeys(matcher);
        for (JobKey jobKey : jobKeys) {
            JobDetail jobDetail = scheduler.getJobDetail(jobKey);
            List<? extends Trigger> triggers = scheduler.getTriggersOfJob(jobKey);
            for (Trigger trigger : triggers) {
                TaskScheduled job = new TaskScheduled();
                job.setTaskName(jobKey.getName());
                job.setTaskGroup(jobKey.getGroup());
                TriggerState triggerState = scheduler.getTriggerState(trigger.getKey());
                job.setStatus(triggerState.name());
                if (trigger instanceof CronTrigger) {
                    CronTrigger cronTrigger = (CronTrigger)trigger;
                    String cronExpression = cronTrigger.getCronExpression();
                    job.setTaskCron(cronExpression);
                }
                job.setPreviousFireTime(trigger.getPreviousFireTime());
                job.setNextFireTime(trigger.getNextFireTime());
                JobDataMap jobDataMap = trigger.getJobDataMap();
                job.setTaskType(jobDataMap.getString("taskType"));
                job.setTargetSystem(jobDataMap.getString("targetSystem"));
                job.setTargetObject(jobDataMap.getString("targetObject"));
                job.setTargetMethod(jobDataMap.getString("targetMethod"));
                job.setContactName(jobDataMap.getString("contactName"));
                job.setContactEmail(jobDataMap.getString("contactEmail"));
                job.setTaskDesc(jobDetail.getDescription());
                String jobClass = jobDetail.getJobClass().getSimpleName();
                if (jobClass.equals("StatefulJob")) {
                    job.setJobType("statefulJob");
                } else if (jobClass.equals("DefaultJob")) {
                    job.setJobType("job");
                }
                result.add(job);
            }
        }
    } catch (Exception e) {
        logger.error("Try to load All JobDetail cause error : ", e);
    }
    return result;
}
项目:lams    文件:AbstractTerracottaJobStore.java   
@Override
public Set<TriggerKey> getTriggerKeys(GroupMatcher<TriggerKey> matcher) throws JobPersistenceException {
  try {
    return realJobStore.getTriggerKeys(matcher);
  } catch (RejoinException e) {
    throw new JobPersistenceException("Trigger key retrieval failed due to client rejoin", e);
  }
}
项目:lams    文件:AbstractTerracottaJobStore.java   
@Override
public Collection<String> pauseJobs(GroupMatcher<JobKey> matcher) throws JobPersistenceException {
  try {
    return realJobStore.pauseJobs(matcher);
  } catch (RejoinException e) {
    throw new JobPersistenceException("Pausing jobs failed due to client rejoin", e);
  }
}
项目:ares    文件:BotPool.java   
/**
 * Removes the sleep mode.
 * @throws SchedulerException when the sleep mode cannot be removed.
 */
public void removeSleepMode() throws SchedulerException {
  LOGGER.trace("Removing sleep mode...");
  for (TriggerKey tk : this.scheduler.getTriggerKeys(GroupMatcher.anyTriggerGroup())) {
    Trigger t = this.scheduler.getTrigger(tk);
    this.scheduler.rescheduleJob(tk, t.getTriggerBuilder().startNow().modifiedByCalendar(null).build());
  }
  this.scheduler.deleteCalendar(CALENDAR_SLEEP);
  LOGGER.trace("Sleep mode removed");
}
项目:lams    文件:AbstractTerracottaJobStore.java   
@Override
public Collection<String> resumeTriggers(GroupMatcher<TriggerKey> matcher) throws JobPersistenceException {
  try {
    return realJobStore.resumeTriggers(matcher);
  } catch (RejoinException e) {
    throw new JobPersistenceException("Resuming triggers failed due to client rejoin", e);
  }
}
项目:dataProvider    文件:JobUtility.java   
public List<Task> getTasks() throws SchedulerException {
    Scheduler scheduler = schedulerFactoryBean.getScheduler();
    GroupMatcher<JobKey> matcher = GroupMatcher.anyJobGroup();
    Set<JobKey> jobKeys = scheduler.getJobKeys(matcher);
    List<Task> taskList = new ArrayList<>();
    for (JobKey jobKey : jobKeys) {
        List<? extends Trigger> triggers = scheduler.getTriggersOfJob(jobKey);
        for (Trigger trigger : triggers) {

            Task task = new Task();

            task.setJobGroup(jobKey.getGroup());
            task.setJobName(jobKey.getName());

            if (trigger instanceof SimpleTrigger) {
                SimpleTrigger simpleTrigger = (SimpleTrigger) trigger;
                JobDetail jobDetail = scheduler.getJobDetail(jobKey);

                task.setDescription(jobDetail.getDescription());

                if (simpleTrigger.getRepeatCount()<1) {
                    task.setProgress(0.0);
                } else {
                    if (jobDetail.getJobDataMap().get("overallCounter")!= null) {
                        Double progress = Double.parseDouble(jobDetail.getJobDataMap().get("overallCounter").toString());
                        task.setProgress((progress/simpleTrigger.getRepeatCount() * 100));
                    } else {
                        task.setProgress(0.0);
                    }
                }
            }
            taskList.add(task);
        }
    }
    return taskList;
}
项目:lams    文件:DefaultClusteredJobStore.java   
/**
 * <p>
 * Get the names of all of the <code>{@link org.quartz.Trigger}</code> s that have the given group name.
 * </p>
 */
@Override
public Set<TriggerKey> getTriggerKeys(GroupMatcher<TriggerKey> matcher) throws JobPersistenceException {
  lock();
  try {
    Set<String> groupNames = new HashSet<String>();
    switch (matcher.getCompareWithOperator()) {
      case EQUALS:
        groupNames.add(matcher.getCompareToValue());
        break;
      default:
        for (String group : triggerFacade.allTriggersGroupNames()) {
          if (matcher.getCompareWithOperator().evaluate(group, matcher.getCompareToValue())) {
            groupNames.add(group);
          }
        }
    }

    Set<TriggerKey> out = new HashSet<TriggerKey>();

    for (String groupName : groupNames) {
      Set<String> grpSet = toolkitDSHolder.getOrCreateTriggersGroupMap(groupName);

      for (String key : grpSet) {
        TriggerKey triggerKey = new TriggerKey(key, groupName);
        TriggerWrapper tw = triggerFacade.get(triggerKey);
        if (tw != null) {
          out.add(triggerKey);
        }
      }
    }

    return out;
  } finally {
    unlock();
  }
}
项目:lams    文件:QuartzSchedulerMBeanImpl.java   
public void resumeJobs(GroupMatcher<JobKey> matcher) throws Exception {
    try {
        scheduler.resumeJobs(matcher);
    } catch (Exception e) {
        throw newPlainException(e);
    }
}
项目:lams    文件:DefaultClusteredJobStore.java   
/**
 * <p>
 * Pause all triggers - equivalent of calling <code>pauseTriggerGroup(group)</code> on every group.
 * </p>
 * <p>
 * When <code>resumeAll()</code> is called (to un-pause), trigger misfire instructions WILL be applied.
 * </p>
 * 
 * @see #resumeAll()
 * @see #pauseTriggers(org.quartz.impl.matchers.GroupMatcher)
 */
@Override
public void pauseAll() throws JobPersistenceException {

  lock();
  try {
    List<String> names = getTriggerGroupNames();

    for (String name : names) {
      pauseTriggers(GroupMatcher.triggerGroupEquals(name));
    }
  } finally {
    unlock();
  }
}
项目:lams    文件:QuartzSchedulerMBeanImpl.java   
public List<String> getTriggerNames(String groupName) throws Exception {
    try {
        List<String> triggerNames = new ArrayList<String>();
        for(TriggerKey key: scheduler.getTriggerKeys(GroupMatcher.triggerGroupEquals(groupName))) {
            triggerNames.add(key.getName());
        }
        return triggerNames;
    } catch (Exception e) {
        throw newPlainException(e);
    }
}
项目:lams    文件:RAMJobStore.java   
/**
 * <p>
 * Pause all of the known <code>{@link Trigger}s</code> matching.
 * </p>
 *
 * <p>
 * The JobStore should "remember" the groups paused, and impose the
 * pause on any new triggers that are added to one of these groups while the group is
 * paused.
 * </p>
 *
 */
public List<String> pauseTriggers(GroupMatcher<TriggerKey> matcher) {

    List<String> pausedGroups;
    synchronized (lock) {
        pausedGroups = new LinkedList<String>();

        StringMatcher.StringOperatorName operator = matcher.getCompareWithOperator();
        switch (operator) {
            case EQUALS:
                if(pausedTriggerGroups.add(matcher.getCompareToValue())) {
                    pausedGroups.add(matcher.getCompareToValue());
                }
                break;
            default :
                for (String group : triggersByGroup.keySet()) {
                    if(operator.evaluate(group, matcher.getCompareToValue())) {
                        if(pausedTriggerGroups.add(matcher.getCompareToValue())) {
                            pausedGroups.add(group);
                        }
                    }
                }
        }

        for (String pausedGroup : pausedGroups) {
            Set<TriggerKey> keys = getTriggerKeys(GroupMatcher.triggerGroupEquals(pausedGroup));

            for (TriggerKey key: keys) {
                pauseTrigger(key);
            }
        }
    }

    return pausedGroups;
}
项目:lams    文件:RAMJobStore.java   
/**
 * <p>
 * Pause all of the <code>{@link org.quartz.JobDetail}s</code> in the
 * given group - by pausing all of their <code>Trigger</code>s.
 * </p>
 *
 *
 * <p>
 * The JobStore should "remember" that the group is paused, and impose the
 * pause on any new jobs that are added to the group while the group is
 * paused.
 * </p>
 */
public List<String> pauseJobs(GroupMatcher<JobKey> matcher) {
    List<String> pausedGroups = new LinkedList<String>();
    synchronized (lock) {

        StringMatcher.StringOperatorName operator = matcher.getCompareWithOperator();
        switch (operator) {
            case EQUALS:
                if (pausedJobGroups.add(matcher.getCompareToValue())) {
                    pausedGroups.add(matcher.getCompareToValue());
                }
                break;
            default :
                for (String group : jobsByGroup.keySet()) {
                    if(operator.evaluate(group, matcher.getCompareToValue())) {
                        if (pausedJobGroups.add(group)) {
                            pausedGroups.add(group);
                        }
                    }
                }
        }

        for (String groupName : pausedGroups) {
            for (JobKey jobKey: getJobKeys(GroupMatcher.jobGroupEquals(groupName))) {
                List<OperableTrigger> triggersOfJob = getTriggersForJob(jobKey);
                for (OperableTrigger trigger: triggersOfJob) {
                    pauseTrigger(trigger.getKey());
                }
            }
        }
    }

    return pausedGroups;
}
项目:lams    文件:QuartzSchedulerMBeanImpl.java   
public void pauseJobs(GroupMatcher<JobKey> matcher) throws Exception {
    try {
        scheduler.pauseJobs(matcher);
    } catch (Exception e) {
        throw newPlainException(e);
    }
}
项目:lams    文件:RemoteMBeanScheduler.java   
/**
 * <p>
 * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>,
 * passing the <code>SchedulingContext</code> associated with this
 * instance.
 * </p>
 */
public void pauseTriggers(GroupMatcher<TriggerKey> matcher) throws SchedulerException {
    String operation = null;
    switch (matcher.getCompareWithOperator()) {
        case EQUALS:
            operation = "pauseTriggerGroup";
            break;
        case CONTAINS:
            operation = "pauseTriggersContaining";
            break;
        case STARTS_WITH:
            operation = "pauseTriggersStartingWith";
            break;
        case ENDS_WITH:
            operation = "pauseTriggersEndingWith";
        case ANYTHING:
            operation = "pauseTriggersAll";
    }

    if (operation != null) {
        invoke(
                operation,
                new Object[] { matcher.getCompareToValue() },
                new String[] { String.class.getName() });
    } else {
        throw new SchedulerException("Unsupported GroupMatcher kind for pausing triggers: " + matcher.getCompareWithOperator());
    }
}
项目:JAVA-    文件:SchedulerManager.java   
public List<TaskScheduled> getAllJobDetail() {
    List<TaskScheduled> result = new LinkedList<TaskScheduled>();
    try {
        GroupMatcher<JobKey> matcher = GroupMatcher.jobGroupContains("");
        Set<JobKey> jobKeys = scheduler.getJobKeys(matcher);
        for (JobKey jobKey : jobKeys) {
            JobDetail jobDetail = scheduler.getJobDetail(jobKey);
            List<? extends Trigger> triggers = scheduler.getTriggersOfJob(jobKey);
            for (Trigger trigger : triggers) {
                TaskScheduled job = new TaskScheduled();
                job.setTaskName(jobKey.getName());
                job.setTaskGroup(jobKey.getGroup());
                TriggerState triggerState = scheduler.getTriggerState(trigger.getKey());
                job.setStatus(triggerState.name());
                if (trigger instanceof CronTrigger) {
                    CronTrigger cronTrigger = (CronTrigger)trigger;
                    String cronExpression = cronTrigger.getCronExpression();
                    job.setTaskCron(cronExpression);
                }
                job.setPreviousFireTime(trigger.getPreviousFireTime());
                job.setNextFireTime(trigger.getNextFireTime());
                JobDataMap jobDataMap = trigger.getJobDataMap();
                job.setTaskType(jobDataMap.getString("taskType"));
                job.setTargetSystem(jobDataMap.getString("targetSystem"));
                job.setTargetObject(jobDataMap.getString("targetObject"));
                job.setTargetMethod(jobDataMap.getString("targetMethod"));
                job.setContactName(jobDataMap.getString("contactName"));
                job.setContactEmail(jobDataMap.getString("contactEmail"));
                job.setTaskDesc(jobDetail.getDescription());
                String jobClass = jobDetail.getJobClass().getSimpleName();
                if (jobClass.equals("StatefulJob")) {
                    job.setJobType("statefulJob");
                } else if (jobClass.equals("DefaultJob")) {
                    job.setJobType("job");
                }
                result.add(job);
            }
        }
    } catch (Exception e) {
        logger.error("Try to load All JobDetail cause error : ", e);
    }
    return result;
}
项目:jaffa-framework    文件:QuartzSchedulerHelper.java   
public JobKey getJobKey(final String taskId) {
  JobKey jobKey = null;
  try {
    for (final JobKey key : scheduler.getJobKeys(GroupMatcher
            .jobGroupEquals(JOB_GROUP))) {
      if (key.getName().equalsIgnoreCase(taskId)) {
        jobKey = key;
        break;
      }
    }
  } catch (SchedulerException e) {
    LOGGER.error(e);
  }
  return jobKey;
}
项目:lams    文件:JobStoreSupport.java   
/**
 * <p>
 * Get the names of all of the <code>{@link org.quartz.Job}</code> s that
 * matcher the given groupMatcher.
 * </p>
 * 
 * <p>
 * If there are no jobs in the given group name, the result should be an empty Set
 * </p>
 */
@SuppressWarnings("unchecked")
public Set<JobKey> getJobKeys(final GroupMatcher<JobKey> matcher)
    throws JobPersistenceException {
    return (Set<JobKey>)executeWithoutLock( // no locks necessary for read...
        new TransactionCallback() {
            public Object execute(Connection conn) throws JobPersistenceException {
                return getJobNames(conn, matcher);
            }
        });
}
项目:lams    文件:JobStoreSupport.java   
protected Set<JobKey> getJobNames(Connection conn,
        GroupMatcher<JobKey> matcher) throws JobPersistenceException {
    Set<JobKey> jobNames;

    try {
        jobNames = getDelegate().selectJobsInGroup(conn, matcher);
    } catch (SQLException e) {
        throw new JobPersistenceException("Couldn't obtain job names: "
                + e.getMessage(), e);
    }

    return jobNames;
}
项目:lams    文件:JobStoreSupport.java   
protected Set<TriggerKey> getTriggerNames(Connection conn,
        GroupMatcher<TriggerKey> matcher) throws JobPersistenceException {

    Set<TriggerKey> trigNames;

    try {
        trigNames = getDelegate().selectTriggersInGroup(conn, matcher);
    } catch (SQLException e) {
        throw new JobPersistenceException("Couldn't obtain trigger names: "
                + e.getMessage(), e);
    }

    return trigNames;
}
项目:lams    文件:QuartzScheduler.java   
/**
 * <p>
 * Resume (un-pause) all of the <code>{@link org.quartz.JobDetail}s</code>
 * in the matching groups.
 * </p>
 * 
 * <p>
 * If any of the <code>Job</code> s had <code>Trigger</code> s that
 * missed one or more fire-times, then the <code>Trigger</code>'s
 * misfire instruction will be applied.
 * </p>
 *  
 */
public void resumeJobs(GroupMatcher<JobKey> matcher)
    throws SchedulerException {
    validateState();

    if(matcher == null) {
        matcher = GroupMatcher.groupEquals(Scheduler.DEFAULT_GROUP);
    }

    Collection<String> resumedGroups = resources.getJobStore().resumeJobs(matcher);
    notifySchedulerThread(0L);
    for (String pausedGroup : resumedGroups) {
        notifySchedulerListenersResumedJobs(pausedGroup);
    }
}
项目:lams    文件:JobStoreSupport.java   
/**
 * <p>
 * Pause all of the <code>{@link org.quartz.Trigger}s</code> matching the
 * given groupMatcher.
 * </p>
 * 
 * @see #resumeTriggerGroup(java.sql.Connection, org.quartz.impl.matchers.GroupMatcher)
 */
public Set<String> pauseTriggerGroup(Connection conn,
        GroupMatcher<TriggerKey> matcher) throws JobPersistenceException {

    try {

        getDelegate().updateTriggerGroupStateFromOtherStates(
                conn, matcher, STATE_PAUSED, STATE_ACQUIRED,
                STATE_WAITING, STATE_WAITING);

        getDelegate().updateTriggerGroupStateFromOtherState(
                conn, matcher, STATE_PAUSED_BLOCKED, STATE_BLOCKED);

        List<String> groups = getDelegate().selectTriggerGroups(conn, matcher);

        // make sure to account for an exact group match for a group that doesn't yet exist
        StringMatcher.StringOperatorName operator = matcher.getCompareWithOperator();
        if (operator.equals(StringOperatorName.EQUALS) && !groups.contains(matcher.getCompareToValue())) {
          groups.add(matcher.getCompareToValue());
        }

        for (String group : groups) {
            if (!getDelegate().isTriggerGroupPaused(conn, group)) {
                getDelegate().insertPausedTriggerGroup(conn, group);
            }
        }

        return new HashSet<String>(groups);

    } catch (SQLException e) {
        throw new JobPersistenceException("Couldn't pause trigger group '"
                + matcher + "': " + e.getMessage(), e);
    }
}