org.quartz.Scheduler#getTriggerState ( )源码实例Demo

下面列出了org.quartz.Scheduler#getTriggerState ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: spring-cloud-shop   文件: JobTrigger.java
/**
 * 获取所有job任务
 */
public static List<JobInfo> getJobs(Scheduler scheduler) throws SchedulerException {
    GroupMatcher<JobKey> matcher = GroupMatcher.anyJobGroup();

    List<JobInfo> jobs = Lists.newArrayList();
    Set<JobKey> jobKeys = scheduler.getJobKeys(matcher);

    for (JobKey jobKey : jobKeys) {
        List<? extends Trigger> triggers = scheduler.getTriggersOfJob(jobKey);
        for (Trigger trigger : triggers) {

            JobInfo event = new JobInfo();
            event.setJobName(jobKey.getName());
            event.setJobGroup(jobKey.getGroup());
            event.setDescription(String.format("触发器 ======== %s", trigger.getKey()));
            Trigger.TriggerState state = scheduler.getTriggerState(trigger.getKey());
            event.setJobStatus(EnumUtils.getEnum(JobStatusEnums.class, state.name()).getCode());
            if (trigger instanceof CronTrigger) {
                CronTrigger cronTrigger = (CronTrigger) trigger;
                event.setCron(cronTrigger.getCronExpression());
                jobs.add(event);
            }
        }
    }
    return jobs;
}
 
源代码2 项目: griffin   文件: BatchJobOperatorImpl.java
@Override
public JobState getState(AbstractJob job, String action)
    throws SchedulerException {
    JobState jobState = new JobState();
    Scheduler scheduler = factory.getScheduler();
    if (job.getGroup() == null || job.getName() == null) {
        return null;
    }
    TriggerKey triggerKey = triggerKey(job.getName(), job.getGroup());
    TriggerState triggerState = scheduler.getTriggerState(triggerKey);
    jobState.setState(triggerState.toString());
    jobState.setToStart(getStartStatus(triggerState));
    jobState.setToStop(getStopStatus(triggerState));
    setTriggerTime(job, jobState);
    return jobState;
}
 
源代码3 项目: springboot-quartz   文件: ScheduleJobService.java
private void wrapScheduleJob(ScheduleJob scheduleJob,Scheduler scheduler,JobKey jobKey,Trigger trigger){  
    try {  
        scheduleJob.setJobName(jobKey.getName());  
        scheduleJob.setJobGroup(jobKey.getGroup()); 
  
        JobDetail jobDetail = scheduler.getJobDetail(jobKey);  
        ScheduleJob job = (ScheduleJob)jobDetail.getJobDataMap().get("scheduleJob");  
        scheduleJob.setDesc(job.getDesc());  
        scheduleJob.setJobId(job.getJobId());
  
        Trigger.TriggerState triggerState = scheduler.getTriggerState(trigger.getKey());  
        scheduleJob.setJobStatus(triggerState.name());  
        if(trigger instanceof CronTrigger){  
            CronTrigger cronTrigger = (CronTrigger)trigger;  
            String cronExpression = cronTrigger.getCronExpression();  
            scheduleJob.setCronExpression(cronExpression);  
        }  
    } catch (SchedulerException e) {  
        e.printStackTrace(); 
    }  
}
 
源代码4 项目: spring-cloud-shop   文件: JobTrigger.java
/**
 * 更新定时任务
 *
 * @param scheduler      the scheduler
 * @param jobName        the job name
 * @param jobGroup       the job group
 * @param cronExpression the cron expression
 * @param param          the param
 */
private static void updateJob(Scheduler scheduler, String jobName, String jobGroup, String cronExpression, Object param) throws SchedulerException {

    // 同步或异步
    Class<? extends Job> jobClass = JobQuartzJobBean.class;
    JobDetail jobDetail = scheduler.getJobDetail(getJobKey(jobName, jobGroup));

    jobDetail = jobDetail.getJobBuilder().ofType(jobClass).build();

    // 更新参数 实际测试中发现无法更新
    JobDataMap jobDataMap = jobDetail.getJobDataMap();
    jobDataMap.put("JobAdapter", param);
    jobDetail.getJobBuilder().usingJobData(jobDataMap);

    TriggerKey triggerKey = getTriggerKey(jobName, jobGroup);

    // 表达式调度构建器
    CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression);

    CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);

    // 按新的cronExpression表达式重新构建trigger
    trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build();
    Trigger.TriggerState triggerState = scheduler.getTriggerState(trigger.getKey());
    // 忽略状态为PAUSED的任务,解决集群环境中在其他机器设置定时任务为PAUSED状态后,集群环境启动另一台主机时定时任务全被唤醒的bug
    if (!JobEnums.PAUSE.name().equalsIgnoreCase(triggerState.name())) {
        // 按新的trigger重新设置job执行
        scheduler.rescheduleJob(triggerKey, trigger);
    }
}
 
源代码5 项目: spring-boot-quartz-demo   文件: JobServiceImpl.java
/**
 * Get the current state of job
 */
public String getJobState(String jobName) {
	System.out.println("JobServiceImpl.getJobState()");

	try {
		String groupKey = "SampleGroup";
		JobKey jobKey = new JobKey(jobName, groupKey);

		Scheduler scheduler = schedulerFactoryBean.getScheduler();
		JobDetail jobDetail = scheduler.getJobDetail(jobKey);

		List<? extends Trigger> triggers = scheduler.getTriggersOfJob(jobDetail.getKey());
		if(triggers != null && triggers.size() > 0){
			for (Trigger trigger : triggers) {
				TriggerState triggerState = scheduler.getTriggerState(trigger.getKey());

				if (TriggerState.PAUSED.equals(triggerState)) {
					return "PAUSED";
				}else if (TriggerState.BLOCKED.equals(triggerState)) {
					return "BLOCKED";
				}else if (TriggerState.COMPLETE.equals(triggerState)) {
					return "COMPLETE";
				}else if (TriggerState.ERROR.equals(triggerState)) {
					return "ERROR";
				}else if (TriggerState.NONE.equals(triggerState)) {
					return "NONE";
				}else if (TriggerState.NORMAL.equals(triggerState)) {
					return "SCHEDULED";
				}
			}
		}
	} catch (SchedulerException e) {
		System.out.println("SchedulerException while checking job with name and group exist:"+e.getMessage());
		e.printStackTrace();
	}
	return null;
}
 
源代码6 项目: javamelody   文件: QuartzAdapter.java
boolean isTriggerPaused(Trigger trigger, Scheduler scheduler) throws SchedulerException {
	return scheduler.getTriggerState(trigger.getName(),
			trigger.getGroup()) == Trigger.STATE_PAUSED;
}
 
源代码7 项目: javamelody   文件: Quartz2Adapter.java
@Override
boolean isTriggerPaused(Trigger trigger, Scheduler scheduler) throws SchedulerException {
	return scheduler.getTriggerState(trigger.getKey()) == Trigger.TriggerState.PAUSED;
}
 
源代码8 项目: olat   文件: StatisticsAdminController.java
private void refreshUIState() {
    boolean enabled = false;
    String cronExpression = "";
    if (CoreSpringFactory.containsBean("schedulerFactoryBean")) {
        log.info("refreshUIState: schedulerFactoryBean found");
        final Object schedulerFactoryBean = CoreSpringFactory.getBean("schedulerFactoryBean");
        if (schedulerFactoryBean != null && schedulerFactoryBean instanceof Scheduler) {
            final Scheduler schedulerBean = (Scheduler) schedulerFactoryBean;
            int triggerState;
            try {
                triggerState = schedulerBean.getTriggerState("updateStatisticsTrigger", null/* trigger group */);
                enabled = (triggerState != Trigger.STATE_NONE) && (triggerState != Trigger.STATE_ERROR);
                log.info("refreshUIState: updateStatisticsTrigger state was " + triggerState + ", enabled now: " + enabled);
            } catch (final SchedulerException e) {
                log.warn("refreshUIState: Got a SchedulerException while asking for the updateStatisticsTrigger's state", e);
            }
        }
        final CronTriggerBean triggerBean = (CronTriggerBean) CoreSpringFactory.getBean("updateStatisticsTrigger");
        final JobDetail jobDetail = triggerBean.getJobDetail();
        enabled &= jobDetail.getName().equals("statistics.job.enabled");
        log.info("refreshUIState: statistics.job.enabled check, enabled now: " + enabled);
        cronExpression = triggerBean.getCronExpression();
        final StatisticUpdateService statisticUpdateManager = getStatisticUpdateManager();
        if (statisticUpdateManager == null) {
            log.info("refreshUIState: statisticUpdateManager not configured");
            enabled = false;
        } else {
            enabled &= statisticUpdateManager.isEnabled();
            log.info("refreshUIState: statisticUpdateManager configured, enabled now: " + enabled);
        }
    } else {
        log.info("refreshUIState: schedulerFactoryBean not found");
    }
    if (enabled) {
        content.contextPut("status", getTranslator().translate("statistics.status.enabled", new String[] { cronExpression }));
    } else {
        content.contextPut("status", getTranslator().translate("statistics.status.disabled"));
    }
    content.contextPut("statisticEnabled", enabled);

    recalcLastUpdated();

    updateStatisticUpdateOngoingFlag();
}
 
源代码9 项目: olat   文件: StatisticsAdminController.java
private void refreshUIState() {
    boolean enabled = false;
    String cronExpression = "";
    if (CoreSpringFactory.containsBean("schedulerFactoryBean")) {
        log.info("refreshUIState: schedulerFactoryBean found");
        final Object schedulerFactoryBean = CoreSpringFactory.getBean("schedulerFactoryBean");
        if (schedulerFactoryBean != null && schedulerFactoryBean instanceof Scheduler) {
            final Scheduler schedulerBean = (Scheduler) schedulerFactoryBean;
            int triggerState;
            try {
                triggerState = schedulerBean.getTriggerState("updateStatisticsTrigger", null/* trigger group */);
                enabled = (triggerState != Trigger.STATE_NONE) && (triggerState != Trigger.STATE_ERROR);
                log.info("refreshUIState: updateStatisticsTrigger state was " + triggerState + ", enabled now: " + enabled);
            } catch (final SchedulerException e) {
                log.warn("refreshUIState: Got a SchedulerException while asking for the updateStatisticsTrigger's state", e);
            }
        }
        final CronTriggerBean triggerBean = (CronTriggerBean) CoreSpringFactory.getBean("updateStatisticsTrigger");
        final JobDetail jobDetail = triggerBean.getJobDetail();
        enabled &= jobDetail.getName().equals("statistics.job.enabled");
        log.info("refreshUIState: statistics.job.enabled check, enabled now: " + enabled);
        cronExpression = triggerBean.getCronExpression();
        final StatisticUpdateService statisticUpdateManager = getStatisticUpdateManager();
        if (statisticUpdateManager == null) {
            log.info("refreshUIState: statisticUpdateManager not configured");
            enabled = false;
        } else {
            enabled &= statisticUpdateManager.isEnabled();
            log.info("refreshUIState: statisticUpdateManager configured, enabled now: " + enabled);
        }
    } else {
        log.info("refreshUIState: schedulerFactoryBean not found");
    }
    if (enabled) {
        content.contextPut("status", getTranslator().translate("statistics.status.enabled", new String[] { cronExpression }));
    } else {
        content.contextPut("status", getTranslator().translate("statistics.status.disabled"));
    }
    content.contextPut("statisticEnabled", enabled);

    recalcLastUpdated();

    updateStatisticUpdateOngoingFlag();
}
 
源代码10 项目: iaf   文件: ShowScheduler.java
private Map<String, Object> getJobData(JobKey jobKey, boolean expanded) throws SchedulerException {
	Map<String, Object> jobData = new HashMap<String, Object>();
	Scheduler scheduler = getScheduler();
	String jobName = jobKey.getName();
	JobDetail job = scheduler.getJobDetail(jobKey);

	jobData.put("fullName", job.getKey().getGroup() + "." + job.getKey().getName());
	jobData.put("name", job.getKey().getName());
	jobData.put("group", job.getKey().getGroup());
	String description = "-";
	if (StringUtils.isNotEmpty(job.getDescription()))
		description = job.getDescription();
	jobData.put("description", description);
	jobData.put("stateful", job.isPersistJobDataAfterExecution() && job.isConcurrentExectionDisallowed());
	jobData.put("durable",job.isDurable());
	jobData.put("jobClass", job.getJobClass().getSimpleName());

	if(job instanceof IbisJobDetail) {
		jobData.put("type", ((IbisJobDetail) job).getJobType());
	}

	TriggerState state = scheduler.getTriggerState(TriggerKey.triggerKey(jobName, jobKey.getGroup()));
	jobData.put("state", state.name());

	jobData.put("triggers", getJobTriggers(scheduler.getTriggersOfJob(jobKey)));
	jobData.put("messages", getJobMessages(job));

	JobDataMap jobMap = job.getJobDataMap();
	jobData.put("properties", getJobData(jobMap));

	if(expanded) {
		JobDef jobDef = (JobDef) jobMap.get(ConfiguredJob.JOBDEF_KEY);
		jobData.put("adapter", jobDef.getAdapterName());
		jobData.put("receiver", jobDef.getReceiverName());
		jobData.put("message", jobDef.getMessage());
		
		Locker locker = jobDef.getLocker();
		if(locker != null) {
			jobData.put("locker", true);
			jobData.put("lockkey", locker.getObjectId());
		} else {
			jobData.put("locker", false);
		}
	}

	return jobData;
}
 
源代码11 项目: fixflow   文件: JobServiceImpl.java
public Map<String, Object> getJobList(Map<String, Object> params) throws SchedulerException, SQLException {
	Map<String,Object> resultMap = new HashMap<String,Object>();
	String userId = StringUtil.getString(params.get("userId"));
	String queryId = StringUtil.getString(params.get("queryId"));
	ProcessEngine processEngine = getProcessEngine(userId);
	ScheduleService scheduleService = processEngine.getScheduleService();
	Scheduler scheduler = scheduleService.getScheduler();
	try{
		List<Map<String,Object>> jobList = new ArrayList<Map<String,Object>>();
		List<JobDetail> list = scheduleService.getJobList(queryId);
		for(JobDetail job :list){
			Map<String,Object> jobMap = new HashMap<String,Object>();
			jobMap.put("jobName", job.getKey().getName());
			jobMap.put("groupName", job.getKey().getGroup());
			jobMap.put("processName", job.getJobDataMap().get("processName"));
			jobMap.put("processId", job.getJobDataMap().get("processId"));
			jobMap.put("processKey", job.getJobDataMap().get("processKey"));
			jobMap.put("processInstanceId", job.getJobDataMap().get("processInstanceId"));
			jobMap.put("nodeId", job.getJobDataMap().get("nodeId"));
			jobMap.put("bizKey", job.getJobDataMap().get("bizKey"));
			jobMap.put("jobType", job.getJobDataMap().get("jobType"));
			jobMap.put("processId", job.getJobDataMap().get("processId"));
			jobMap.put("nodeName", job.getJobDataMap().get("nodeName"));
			jobMap.put("jobKeyGroup", job.getKey().getGroup());
			jobMap.put("jobKeyName", job.getKey().getName());
			//判断job下的trigger是否全为暂停状态
			List<Trigger> triggerList = (List<Trigger>) scheduler.getTriggersOfJob(job.getKey());
			boolean isPaused = false;
			for(Trigger t:triggerList){
				TriggerState ts = scheduler.getTriggerState(t.getKey());
				if(ts.equals(TriggerState.PAUSED)){
					isPaused = true;
					break;
				}
			}
			jobMap.put("isPaused", isPaused);
			jobList.add(jobMap);
		}
		resultMap.put("dataList", jobList);
	}finally{
		closeProcessEngine();
	}
	return resultMap;
}
 
源代码12 项目: fixflow   文件: JobServiceImpl.java
@SuppressWarnings("unchecked")
public Map<String, Object> getJobTrigger(Map<String, Object> params) throws SQLException, SchedulerException {
	Map<String,Object> resultMap = new HashMap<String,Object>();
	String userId = StringUtil.getString(params.get("userId"));
	ProcessEngine processEngine = getProcessEngine(userId);
	ScheduleService scheduleService = processEngine.getScheduleService();
	Scheduler scheduler = scheduleService.getScheduler();
	try{
		String jobKeyName = StringUtil.getString(params.get("jobKeyName"));
		String jobKeyGroup = StringUtil.getString(params.get("jobKeyGroup"));
		List<Map<String,Object>> triggerList = new ArrayList<Map<String,Object>>();
		List<Trigger> triggers = scheduleService.getTriggerList(jobKeyName, jobKeyGroup);
		for(Trigger t : triggers){
			Map<String,Object> triggerMap = new HashMap<String,Object>();
			triggerMap.put("triggerName", t.getKey().getName());
			triggerMap.put("triggerGroup", t.getKey().getGroup());
			triggerMap.put("startTime", t.getStartTime());
			triggerMap.put("endTime", t.getEndTime());
			triggerMap.put("lastFireTime", t.getPreviousFireTime());
			triggerMap.put("nextFireTime", t.getNextFireTime());
			triggerMap.put("finalFireTime", t.getFinalFireTime());
			TriggerState ts = scheduler.getTriggerState(t.getKey());
			String triggerState = getTriggerStateByEmuType(ts);
			triggerMap.put("triggerState", triggerState);
			boolean isPaused = false;
			if(ts.equals(TriggerState.PAUSED)){
				isPaused = true;
			}
			triggerMap.put("isPaused", isPaused);
			triggerList.add(triggerMap);
		}
		resultMap.put("dataList", triggerList);
		Map<String,Object> jobMap = new HashMap<String,Object>();
		jobMap.put("jobKeyName", jobKeyName);
		jobMap.put("jobKeyGroup", jobKeyGroup);
		resultMap.put("job", jobMap);
	}finally{
		closeProcessEngine();
	}
	return resultMap;
}
 
源代码13 项目: quartz-web   文件: QuartzUtils.java
/**
 * 获取
 * @param trigger
 * @param scheduler
 * @return
 * @throws SchedulerException
 */
public static TriggerState getTriggerState(Trigger trigger, Scheduler scheduler) throws SchedulerException {
    TriggerState triggerState = scheduler.getTriggerState(trigger.getKey());
    return triggerState;
}
 
源代码14 项目: quartz-web   文件: QuartzUtils.java
/**
 * 对比两个Trigger是否相等
 * @param trigger
 * @param triggerState
 * @param scheduler
 * @return
 * @throws SchedulerException
 */
public static boolean triggerStateEquals(Trigger trigger, TriggerState triggerState, Scheduler scheduler)
        throws SchedulerException {
    TriggerState sourceTriggerState = scheduler.getTriggerState(trigger.getKey());
    return sourceTriggerState.ordinal() == triggerState.ordinal();
}