• 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);
            }
        }
    }
    
    
  • 相关阅读:
    ege demo
    Easy Graphics Engine vs2015使用
    c++ demo
    leetcode 13 -> Roman to Integer
    leetcode 12 -> Integer to Roman
    12. Integer to Roman
    leetcode 9 -> Palindrome Number
    8. String to Integer (atoi)
    获取字符串中长度最长的回文字符串
    leetcode 5-> Longest Palindromic Substring
  • 原文地址:https://www.cnblogs.com/aixing/p/13327271.html
Copyright © 2020-2023  润新知