zoukankan      html  css  js  c++  java
  • Quartz:定时任务工具类

    Quartz:定时任务工具类

    Quartz工具类

    import org.quartz.*;
    import org.quartz.impl.StdSchedulerFactory;
    
    /**
     * Quartz定时任务util
     */
    public class QuartzUtil {
    
        private static SchedulerFactory gSchedulerFactory = new StdSchedulerFactory(); // 创建一个SchedulerFactory工厂实例
        private static String JOB_GROUP_NAME = "FH_JOBGROUP_NAME"; // 任务组
        private static String TRIGGER_GROUP_NAME = "FH_TRIGGERGROUP_NAME"; // 触发器组
    
        /**
         * 添加一个定时任务,使用默认的任务组名,触发器名,触发器组名
         *
         * @param jobName 任务名
         * @param cls     任务
         * @param time    时间设置,参考quartz说明文档
         */
        public static void addJob(String jobName, Class<? extends Job> cls, String time) {
            try {
                Scheduler sched = gSchedulerFactory.getScheduler(); // 通过SchedulerFactory构建Scheduler对象
                JobDetail jobDetail = JobBuilder.newJob(cls).withIdentity(jobName, JOB_GROUP_NAME).build(); // 用于描叙Job实现类及其他的一些静态信息,构建一个作业实例
                CronTrigger trigger = (CronTrigger) TriggerBuilder.newTrigger() // 创建一个新的TriggerBuilder来规范一个触发器
                        .withIdentity(jobName, TRIGGER_GROUP_NAME) // 给触发器起一个名字和组名
                        .withSchedule(CronScheduleBuilder.cronSchedule(time)).build();
                sched.scheduleJob(jobDetail, trigger);
                if (!sched.isShutdown()) {
                    sched.start(); // 启动
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    
        /**
         * 启动所有定时任务
         */
        public static void startJobs() {
            try {
                Scheduler sched = gSchedulerFactory.getScheduler();
                sched.start();
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    
        /**
         * 关闭所有定时任务
         */
        public static void shutdownJobs() {
            try {
                Scheduler sched = gSchedulerFactory.getScheduler();
                if (!sched.isShutdown()) {
                    sched.shutdown();
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    }
    
    
  • 相关阅读:
    鞍点计算
    hdu-2546 饭卡 01背包
    判断2的个数
    1959: 图案打印
    1913: 成绩评估
    1908: 蟠桃记
    采药问题 01背包
    JAVA反射机制_获取Class中的构造函数
    JAVA反射机制_获取字节码文件对象
    tcp饭卡上两地分居克里斯丁
  • 原文地址:https://www.cnblogs.com/aixing/p/13327271.html
Copyright © 2011-2022 走看看