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);
            }
        }
    }
    
    
  • 相关阅读:
    web接口调用
    UISegmentedControl
    CocoaPods安装和使用教程
    NSTimeInterval
    OC-NSString从文件中读取字符串
    XMPP(mac)方案二 ejabberd 服务器搭建 (转载)
    监听 IOS响应式编程框架ReactiveCocoa(RAC)使用示例(转载)
    iOS开发-文件管理
    OC中NSString 的常用方法 (转载)
    NSAttributedString
  • 原文地址:https://www.cnblogs.com/aixing/p/13327271.html
Copyright © 2011-2022 走看看