|  | @@ -0,0 +1,413 @@
 | 
	
		
			
				|  |  | +//package com.xxl.job.admin.core.schedule;
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
 | 
	
		
			
				|  |  | +//import com.xxl.job.admin.core.jobbean.RemoteHttpJobBean;
 | 
	
		
			
				|  |  | +//import com.xxl.job.admin.core.model.XxlJobInfo;
 | 
	
		
			
				|  |  | +//import com.xxl.job.admin.core.thread.JobFailMonitorHelper;
 | 
	
		
			
				|  |  | +//import com.xxl.job.admin.core.thread.JobRegistryMonitorHelper;
 | 
	
		
			
				|  |  | +//import com.xxl.job.admin.core.thread.JobTriggerPoolHelper;
 | 
	
		
			
				|  |  | +//import com.xxl.job.admin.core.util.I18nUtil;
 | 
	
		
			
				|  |  | +//import com.xxl.job.core.biz.AdminBiz;
 | 
	
		
			
				|  |  | +//import com.xxl.job.core.biz.ExecutorBiz;
 | 
	
		
			
				|  |  | +//import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
 | 
	
		
			
				|  |  | +//import com.xxl.rpc.remoting.invoker.XxlRpcInvokerFactory;
 | 
	
		
			
				|  |  | +//import com.xxl.rpc.remoting.invoker.call.CallType;
 | 
	
		
			
				|  |  | +//import com.xxl.rpc.remoting.invoker.reference.XxlRpcReferenceBean;
 | 
	
		
			
				|  |  | +//import com.xxl.rpc.remoting.invoker.route.LoadBalance;
 | 
	
		
			
				|  |  | +//import com.xxl.rpc.remoting.net.NetEnum;
 | 
	
		
			
				|  |  | +//import com.xxl.rpc.remoting.net.impl.servlet.server.ServletServerHandler;
 | 
	
		
			
				|  |  | +//import com.xxl.rpc.remoting.provider.XxlRpcProviderFactory;
 | 
	
		
			
				|  |  | +//import com.xxl.rpc.serialize.Serializer;
 | 
	
		
			
				|  |  | +//import org.quartz.*;
 | 
	
		
			
				|  |  | +//import org.quartz.Trigger.TriggerState;
 | 
	
		
			
				|  |  | +//import org.quartz.impl.triggers.CronTriggerImpl;
 | 
	
		
			
				|  |  | +//import org.slf4j.Logger;
 | 
	
		
			
				|  |  | +//import org.slf4j.LoggerFactory;
 | 
	
		
			
				|  |  | +//import org.springframework.util.Assert;
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//import javax.servlet.ServletException;
 | 
	
		
			
				|  |  | +//import javax.servlet.http.HttpServletRequest;
 | 
	
		
			
				|  |  | +//import javax.servlet.http.HttpServletResponse;
 | 
	
		
			
				|  |  | +//import java.io.IOException;
 | 
	
		
			
				|  |  | +//import java.util.Date;
 | 
	
		
			
				|  |  | +//import java.util.concurrent.ConcurrentHashMap;
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +///**
 | 
	
		
			
				|  |  | +// * base quartz scheduler util
 | 
	
		
			
				|  |  | +// * @author xuxueli 2015-12-19 16:13:53
 | 
	
		
			
				|  |  | +// */
 | 
	
		
			
				|  |  | +//public final class XxlJobDynamicScheduler {
 | 
	
		
			
				|  |  | +//    private static final Logger logger = LoggerFactory.getLogger(XxlJobDynamicScheduler_old.class);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    // ---------------------- param ----------------------
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    // scheduler
 | 
	
		
			
				|  |  | +//    private static Scheduler scheduler;
 | 
	
		
			
				|  |  | +//    public void setScheduler(Scheduler scheduler) {
 | 
	
		
			
				|  |  | +//		XxlJobDynamicScheduler_old.scheduler = scheduler;
 | 
	
		
			
				|  |  | +//	}
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    // ---------------------- init + destroy ----------------------
 | 
	
		
			
				|  |  | +//    public void start() throws Exception {
 | 
	
		
			
				|  |  | +//        // valid
 | 
	
		
			
				|  |  | +//        Assert.notNull(scheduler, "quartz scheduler is null");
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // init i18n
 | 
	
		
			
				|  |  | +//        initI18n();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // admin registry monitor run
 | 
	
		
			
				|  |  | +//        JobRegistryMonitorHelper.getInstance().start();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // admin monitor run
 | 
	
		
			
				|  |  | +//        JobFailMonitorHelper.getInstance().start();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // admin-server
 | 
	
		
			
				|  |  | +//        initRpcProvider();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        logger.info(">>>>>>>>> init xxl-job admin success.");
 | 
	
		
			
				|  |  | +//    }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    public void destroy() throws Exception {
 | 
	
		
			
				|  |  | +//        // admin trigger pool stop
 | 
	
		
			
				|  |  | +//        JobTriggerPoolHelper.toStop();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // admin registry stop
 | 
	
		
			
				|  |  | +//        JobRegistryMonitorHelper.getInstance().toStop();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // admin monitor stop
 | 
	
		
			
				|  |  | +//        JobFailMonitorHelper.getInstance().toStop();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // admin-server
 | 
	
		
			
				|  |  | +//        stopRpcProvider();
 | 
	
		
			
				|  |  | +//    }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    // ---------------------- I18n ----------------------
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    private void initI18n(){
 | 
	
		
			
				|  |  | +//        for (ExecutorBlockStrategyEnum item:ExecutorBlockStrategyEnum.values()) {
 | 
	
		
			
				|  |  | +//            item.setTitle(I18nUtil.getString("jobconf_block_".concat(item.name())));
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +//    }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    // ---------------------- admin rpc provider (no server version) ----------------------
 | 
	
		
			
				|  |  | +//    private static ServletServerHandler servletServerHandler;
 | 
	
		
			
				|  |  | +//    private void initRpcProvider(){
 | 
	
		
			
				|  |  | +//        // init
 | 
	
		
			
				|  |  | +//        XxlRpcProviderFactory xxlRpcProviderFactory = new XxlRpcProviderFactory();
 | 
	
		
			
				|  |  | +//        xxlRpcProviderFactory.initConfig(
 | 
	
		
			
				|  |  | +//                NetEnum.NETTY_HTTP,
 | 
	
		
			
				|  |  | +//                Serializer.SerializeEnum.HESSIAN.getSerializer(),
 | 
	
		
			
				|  |  | +//                null,
 | 
	
		
			
				|  |  | +//                0,
 | 
	
		
			
				|  |  | +//                XxlJobAdminConfig.getAdminConfig().getAccessToken(),
 | 
	
		
			
				|  |  | +//                null,
 | 
	
		
			
				|  |  | +//                null);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // add services
 | 
	
		
			
				|  |  | +//        xxlRpcProviderFactory.addService(AdminBiz.class.getName(), null, XxlJobAdminConfig.getAdminConfig().getAdminBiz());
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // servlet handler
 | 
	
		
			
				|  |  | +//        servletServerHandler = new ServletServerHandler(xxlRpcProviderFactory);
 | 
	
		
			
				|  |  | +//    }
 | 
	
		
			
				|  |  | +//    private void stopRpcProvider() throws Exception {
 | 
	
		
			
				|  |  | +//        XxlRpcInvokerFactory.getInstance().stop();
 | 
	
		
			
				|  |  | +//    }
 | 
	
		
			
				|  |  | +//    public static void invokeAdminService(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 | 
	
		
			
				|  |  | +//        servletServerHandler.handle(null, request, response);
 | 
	
		
			
				|  |  | +//    }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    // ---------------------- executor-client ----------------------
 | 
	
		
			
				|  |  | +//    private static ConcurrentHashMap<String, ExecutorBiz> executorBizRepository = new ConcurrentHashMap<String, ExecutorBiz>();
 | 
	
		
			
				|  |  | +//    public static ExecutorBiz getExecutorBiz(String address) throws Exception {
 | 
	
		
			
				|  |  | +//        // valid
 | 
	
		
			
				|  |  | +//        if (address==null || address.trim().length()==0) {
 | 
	
		
			
				|  |  | +//            return null;
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // load-cache
 | 
	
		
			
				|  |  | +//        address = address.trim();
 | 
	
		
			
				|  |  | +//        ExecutorBiz executorBiz = executorBizRepository.get(address);
 | 
	
		
			
				|  |  | +//        if (executorBiz != null) {
 | 
	
		
			
				|  |  | +//            return executorBiz;
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // set-cache
 | 
	
		
			
				|  |  | +//        executorBiz = (ExecutorBiz) new XxlRpcReferenceBean(
 | 
	
		
			
				|  |  | +//                NetEnum.NETTY_HTTP,
 | 
	
		
			
				|  |  | +//                Serializer.SerializeEnum.HESSIAN.getSerializer(),
 | 
	
		
			
				|  |  | +//                CallType.SYNC,
 | 
	
		
			
				|  |  | +//                LoadBalance.ROUND,
 | 
	
		
			
				|  |  | +//                ExecutorBiz.class,
 | 
	
		
			
				|  |  | +//                null,
 | 
	
		
			
				|  |  | +//                5000,
 | 
	
		
			
				|  |  | +//                address,
 | 
	
		
			
				|  |  | +//                XxlJobAdminConfig.getAdminConfig().getAccessToken(),
 | 
	
		
			
				|  |  | +//                null,
 | 
	
		
			
				|  |  | +//                null).getObject();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        executorBizRepository.put(address, executorBiz);
 | 
	
		
			
				|  |  | +//        return executorBiz;
 | 
	
		
			
				|  |  | +//    }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    // ---------------------- schedule util ----------------------
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    /**
 | 
	
		
			
				|  |  | +//     * fill job info
 | 
	
		
			
				|  |  | +//     *
 | 
	
		
			
				|  |  | +//     * @param jobInfo
 | 
	
		
			
				|  |  | +//     */
 | 
	
		
			
				|  |  | +//	public static void fillJobInfo(XxlJobInfo jobInfo) {
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        String name = String.valueOf(jobInfo.getId());
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // trigger key
 | 
	
		
			
				|  |  | +//        TriggerKey triggerKey = TriggerKey.triggerKey(name);
 | 
	
		
			
				|  |  | +//        try {
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//            // trigger cron
 | 
	
		
			
				|  |  | +//			Trigger trigger = scheduler.getTrigger(triggerKey);
 | 
	
		
			
				|  |  | +//			if (trigger!=null && trigger instanceof CronTriggerImpl) {
 | 
	
		
			
				|  |  | +//				String cronExpression = ((CronTriggerImpl) trigger).getCronExpression();
 | 
	
		
			
				|  |  | +//				jobInfo.setJobCron(cronExpression);
 | 
	
		
			
				|  |  | +//			}
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//            // trigger state
 | 
	
		
			
				|  |  | +//            TriggerState triggerState = scheduler.getTriggerState(triggerKey);
 | 
	
		
			
				|  |  | +//			if (triggerState!=null) {
 | 
	
		
			
				|  |  | +//				jobInfo.setJobStatus(triggerState.name());
 | 
	
		
			
				|  |  | +//			}
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//            //JobKey jobKey = new JobKey(jobInfo.getJobName(), String.valueOf(jobInfo.getJobGroup()));
 | 
	
		
			
				|  |  | +//            //JobDetail jobDetail = scheduler.getJobDetail(jobKey);
 | 
	
		
			
				|  |  | +//            //String jobClass = jobDetail.getJobClass().getName();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//		} catch (SchedulerException e) {
 | 
	
		
			
				|  |  | +//			logger.error(e.getMessage(), e);
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  | +//	}
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    /**
 | 
	
		
			
				|  |  | +//     * add trigger + job
 | 
	
		
			
				|  |  | +//     *
 | 
	
		
			
				|  |  | +//     * @param jobName
 | 
	
		
			
				|  |  | +//     * @param cronExpression
 | 
	
		
			
				|  |  | +//     * @return
 | 
	
		
			
				|  |  | +//     * @throws SchedulerException
 | 
	
		
			
				|  |  | +//     */
 | 
	
		
			
				|  |  | +//	public static boolean addJob(String jobName, String cronExpression) throws SchedulerException {
 | 
	
		
			
				|  |  | +//    	// 1、job key
 | 
	
		
			
				|  |  | +//        TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
 | 
	
		
			
				|  |  | +//        JobKey jobKey = new JobKey(jobName);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // 2、valid
 | 
	
		
			
				|  |  | +//        if (scheduler.checkExists(triggerKey)) {
 | 
	
		
			
				|  |  | +//            return true;    // PASS
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // 3、corn trigger
 | 
	
		
			
				|  |  | +//        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression).withMisfireHandlingInstructionDoNothing();   // withMisfireHandlingInstructionDoNothing 忽略掉调度终止过程中忽略的调度
 | 
	
		
			
				|  |  | +//        CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // 4、job detail
 | 
	
		
			
				|  |  | +//		Class<? extends Job> jobClass_ = RemoteHttpJobBean.class;   // Class.forName(jobInfo.getJobClass());
 | 
	
		
			
				|  |  | +//		JobDetail jobDetail = JobBuilder.newJob(jobClass_).withIdentity(jobKey).build();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        /*if (jobInfo.getJobData()!=null) {
 | 
	
		
			
				|  |  | +//        	JobDataMap jobDataMap = jobDetail.getJobDataMap();
 | 
	
		
			
				|  |  | +//        	jobDataMap.putAll(JacksonUtil.readValue(jobInfo.getJobData(), Map.class));
 | 
	
		
			
				|  |  | +//        	// JobExecutionContext context.getMergedJobDataMap().get("mailGuid");
 | 
	
		
			
				|  |  | +//		}*/
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // 5、schedule job
 | 
	
		
			
				|  |  | +//        Date date = scheduler.scheduleJob(jobDetail, cronTrigger);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        logger.info(">>>>>>>>>>> addJob success(quartz), jobDetail:{}, cronTrigger:{}, date:{}", jobDetail, cronTrigger, date);
 | 
	
		
			
				|  |  | +//        return true;
 | 
	
		
			
				|  |  | +//    }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    /**
 | 
	
		
			
				|  |  | +//     * remove trigger + job
 | 
	
		
			
				|  |  | +//     *
 | 
	
		
			
				|  |  | +//     * @param jobName
 | 
	
		
			
				|  |  | +//     * @return
 | 
	
		
			
				|  |  | +//     * @throws SchedulerException
 | 
	
		
			
				|  |  | +//     */
 | 
	
		
			
				|  |  | +//    public static boolean removeJob(String jobName) throws SchedulerException {
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        JobKey jobKey = new JobKey(jobName);
 | 
	
		
			
				|  |  | +//        scheduler.deleteJob(jobKey);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        /*TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
 | 
	
		
			
				|  |  | +//        if (scheduler.checkExists(triggerKey)) {
 | 
	
		
			
				|  |  | +//            scheduler.unscheduleJob(triggerKey);    // trigger + job
 | 
	
		
			
				|  |  | +//        }*/
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        logger.info(">>>>>>>>>>> removeJob success(quartz), jobKey:{}", jobKey);
 | 
	
		
			
				|  |  | +//        return true;
 | 
	
		
			
				|  |  | +//    }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    /**
 | 
	
		
			
				|  |  | +//     * updateJobCron
 | 
	
		
			
				|  |  | +//     *
 | 
	
		
			
				|  |  | +//     * @param jobName
 | 
	
		
			
				|  |  | +//     * @param cronExpression
 | 
	
		
			
				|  |  | +//     * @return
 | 
	
		
			
				|  |  | +//     * @throws SchedulerException
 | 
	
		
			
				|  |  | +//     */
 | 
	
		
			
				|  |  | +//	public static boolean updateJobCron(String jobName, String cronExpression) throws SchedulerException {
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // 1、job key
 | 
	
		
			
				|  |  | +//        TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // 2、valid
 | 
	
		
			
				|  |  | +//        if (!scheduler.checkExists(triggerKey)) {
 | 
	
		
			
				|  |  | +//            return true;    // PASS
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        CronTrigger oldTrigger = (CronTrigger) scheduler.getTrigger(triggerKey);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // 3、avoid repeat cron
 | 
	
		
			
				|  |  | +//        String oldCron = oldTrigger.getCronExpression();
 | 
	
		
			
				|  |  | +//        if (oldCron.equals(cronExpression)){
 | 
	
		
			
				|  |  | +//            return true;    // PASS
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // 4、new cron trigger
 | 
	
		
			
				|  |  | +//        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression).withMisfireHandlingInstructionDoNothing();
 | 
	
		
			
				|  |  | +//        oldTrigger = oldTrigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // 5、rescheduleJob
 | 
	
		
			
				|  |  | +//        scheduler.rescheduleJob(triggerKey, oldTrigger);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        /*
 | 
	
		
			
				|  |  | +//        JobKey jobKey = new JobKey(jobName);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // old job detail
 | 
	
		
			
				|  |  | +//        JobDetail jobDetail = scheduler.getJobDetail(jobKey);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // new trigger
 | 
	
		
			
				|  |  | +//        HashSet<Trigger> triggerSet = new HashSet<Trigger>();
 | 
	
		
			
				|  |  | +//        triggerSet.add(cronTrigger);
 | 
	
		
			
				|  |  | +//        // cover trigger of job detail
 | 
	
		
			
				|  |  | +//        scheduler.scheduleJob(jobDetail, triggerSet, true);*/
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        logger.info(">>>>>>>>>>> resumeJob success, JobName:{}", jobName);
 | 
	
		
			
				|  |  | +//        return true;
 | 
	
		
			
				|  |  | +//    }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    /**
 | 
	
		
			
				|  |  | +//     * pause
 | 
	
		
			
				|  |  | +//     *
 | 
	
		
			
				|  |  | +//     * @param jobName
 | 
	
		
			
				|  |  | +//     * @return
 | 
	
		
			
				|  |  | +//     * @throws SchedulerException
 | 
	
		
			
				|  |  | +//     */
 | 
	
		
			
				|  |  | +//    /*public static boolean pauseJob(String jobName) throws SchedulerException {
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    	TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        boolean result = false;
 | 
	
		
			
				|  |  | +//        if (scheduler.checkExists(triggerKey)) {
 | 
	
		
			
				|  |  | +//            scheduler.pauseTrigger(triggerKey);
 | 
	
		
			
				|  |  | +//            result =  true;
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        logger.info(">>>>>>>>>>> pauseJob {}, triggerKey:{}", (result?"success":"fail"),triggerKey);
 | 
	
		
			
				|  |  | +//        return result;
 | 
	
		
			
				|  |  | +//    }*/
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    /**
 | 
	
		
			
				|  |  | +//     * resume
 | 
	
		
			
				|  |  | +//     *
 | 
	
		
			
				|  |  | +//     * @param jobName
 | 
	
		
			
				|  |  | +//     * @return
 | 
	
		
			
				|  |  | +//     * @throws SchedulerException
 | 
	
		
			
				|  |  | +//     */
 | 
	
		
			
				|  |  | +//    /*public static boolean resumeJob(String jobName) throws SchedulerException {
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        boolean result = false;
 | 
	
		
			
				|  |  | +//        if (scheduler.checkExists(triggerKey)) {
 | 
	
		
			
				|  |  | +//            scheduler.resumeTrigger(triggerKey);
 | 
	
		
			
				|  |  | +//            result = true;
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        logger.info(">>>>>>>>>>> resumeJob {}, triggerKey:{}", (result?"success":"fail"), triggerKey);
 | 
	
		
			
				|  |  | +//        return result;
 | 
	
		
			
				|  |  | +//    }*/
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    /**
 | 
	
		
			
				|  |  | +//     * run
 | 
	
		
			
				|  |  | +//     *
 | 
	
		
			
				|  |  | +//     * @param jobName
 | 
	
		
			
				|  |  | +//     * @return
 | 
	
		
			
				|  |  | +//     * @throws SchedulerException
 | 
	
		
			
				|  |  | +//     */
 | 
	
		
			
				|  |  | +//    /*public static boolean triggerJob(String jobName) throws SchedulerException {
 | 
	
		
			
				|  |  | +//    	// TriggerKey : name + group
 | 
	
		
			
				|  |  | +//    	JobKey jobKey = new JobKey(jobName);
 | 
	
		
			
				|  |  | +//        TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        boolean result = false;
 | 
	
		
			
				|  |  | +//        if (scheduler.checkExists(triggerKey)) {
 | 
	
		
			
				|  |  | +//            scheduler.triggerJob(jobKey);
 | 
	
		
			
				|  |  | +//            result = true;
 | 
	
		
			
				|  |  | +//            logger.info(">>>>>>>>>>> runJob success, jobKey:{}", jobKey);
 | 
	
		
			
				|  |  | +//        } else {
 | 
	
		
			
				|  |  | +//        	logger.info(">>>>>>>>>>> runJob fail, jobKey:{}", jobKey);
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +//        return result;
 | 
	
		
			
				|  |  | +//    }*/
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//    /**
 | 
	
		
			
				|  |  | +//     * finaAllJobList
 | 
	
		
			
				|  |  | +//     *
 | 
	
		
			
				|  |  | +//     * @return
 | 
	
		
			
				|  |  | +//     *//*
 | 
	
		
			
				|  |  | +//    @Deprecated
 | 
	
		
			
				|  |  | +//    public static List<Map<String, Object>> finaAllJobList(){
 | 
	
		
			
				|  |  | +//        List<Map<String, Object>> jobList = new ArrayList<Map<String,Object>>();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        try {
 | 
	
		
			
				|  |  | +//            if (scheduler.getJobGroupNames()==null || scheduler.getJobGroupNames().size()==0) {
 | 
	
		
			
				|  |  | +//                return null;
 | 
	
		
			
				|  |  | +//            }
 | 
	
		
			
				|  |  | +//            String groupName = scheduler.getJobGroupNames().get(0);
 | 
	
		
			
				|  |  | +//            Set<JobKey> jobKeys = scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName));
 | 
	
		
			
				|  |  | +//            if (jobKeys!=null && jobKeys.size()>0) {
 | 
	
		
			
				|  |  | +//                for (JobKey jobKey : jobKeys) {
 | 
	
		
			
				|  |  | +//                    TriggerKey triggerKey = TriggerKey.triggerKey(jobKey.getName(), Scheduler.DEFAULT_GROUP);
 | 
	
		
			
				|  |  | +//                    Trigger trigger = scheduler.getTrigger(triggerKey);
 | 
	
		
			
				|  |  | +//                    JobDetail jobDetail = scheduler.getJobDetail(jobKey);
 | 
	
		
			
				|  |  | +//                    TriggerState triggerState = scheduler.getTriggerState(triggerKey);
 | 
	
		
			
				|  |  | +//                    Map<String, Object> jobMap = new HashMap<String, Object>();
 | 
	
		
			
				|  |  | +//                    jobMap.put("TriggerKey", triggerKey);
 | 
	
		
			
				|  |  | +//                    jobMap.put("Trigger", trigger);
 | 
	
		
			
				|  |  | +//                    jobMap.put("JobDetail", jobDetail);
 | 
	
		
			
				|  |  | +//                    jobMap.put("TriggerState", triggerState);
 | 
	
		
			
				|  |  | +//                    jobList.add(jobMap);
 | 
	
		
			
				|  |  | +//                }
 | 
	
		
			
				|  |  | +//            }
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        } catch (SchedulerException e) {
 | 
	
		
			
				|  |  | +//            logger.error(e.getMessage(), e);
 | 
	
		
			
				|  |  | +//            return null;
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +//        return jobList;
 | 
	
		
			
				|  |  | +//    }*/
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//}
 |