Js_Aaron 发表于 2018-11-4 10:24

【学习分享】关于Quartz定时框架的学习分享

本帖最后由 Js_Aaron 于 2018-11-4 11:29 编辑

lbwb2 发表于 2018-11-4 10:36

好好学习天天上线

111qaz 发表于 2018-11-4 10:44

{:1_911:}这个代码的排版 。。。

Js_Aaron 发表于 2018-11-4 11:27

111qaz 发表于 2018-11-4 10:44
这个代码的排版 。。。

我再改改{:1_937:}

Js_Aaron 发表于 2018-11-4 11:30


import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* @author: Aaron
* @Date: 2018/11/03 21:10
*/
public class SchedulerUtil {
    private static final Logger logger = LoggerFactory.getLogger(SchedulerUtil.class);

    /**
   * [简单任务调度:每次执行间隔为多少毫秒,执行多少次] <br>
   *
   * @param jobName          任务名字
   * @param jobGroupName   任务组名字
   * @param triggerName      触发器名字
   * @param triggerGroupName 触发器组名字
   * @param jobClass         任务类
   * @param time             时间间隔
   * @param count            执行几次<br>
   * @author Aaron <br>
   * @date 2018-11-04 <br>
   */
    public static void handleSimpleTrigger(String jobName, String jobGroupName,
                                           String triggerName, String triggerGroupName, Class jobClass,
                                           int time, int count) {
      // 通过schedulerFactory获取一个调度器
      SchedulerFactory schedulerfactory = new StdSchedulerFactory();
      Scheduler scheduler = null;
      try {
            // 通过schedulerFactory获取一个调度器
            scheduler = schedulerfactory.getScheduler();
            // 创建jobDetail实例,绑定Job实现类
            // 指明job的名称,所在组的名称,以及绑定job类
            JobDetail job = JobBuilder.newJob(jobClass)
                  .withIdentity(jobName, jobGroupName).build();
            // 定义调度触发规则
            //使用simpleTrigger规则
            Trigger
                  trigger = TriggerBuilder.newTrigger().withIdentity(triggerName,
                  triggerGroupName)
                  .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(time).withRepeatCount(count))
                  .startNow().build();
            // 把作业和触发器注册到任务调度中
            scheduler.scheduleJob(job, trigger);
            // 启动调度
            scheduler.start();
      } catch (Exception e) {
            logger.warn("执行" + jobName + "组" + jobName + "任务出现异常E:[" + e.getMessage() + "]");
      }
    }

    /**
   * [复杂任务调度:每天几点几分几秒定时执行任务] <br>
   *
   * @param jobName          任务名字
   * @param jobGroupName   任务组名字
   * @param triggerName      触发器名字
   * @param triggerGroupName 触发器组名字
   * @param jobClass         任务类
   * @param cron             触发规则<br>
   * @author Aaron <br>
   * @date 2018-11-04 <br>
   */
    public static void hadleCronTrigger(String jobName, String jobGroupName,
                                        String triggerName, String triggerGroupName, Class jobClass, String cron) {
      // 通过schedulerFactory获取一个调度器
      SchedulerFactory schedulerfactory = new StdSchedulerFactory();
      Scheduler scheduler = null;
      try {
            // 通过schedulerFactory获取一个调度器
            scheduler = schedulerfactory.getScheduler();
            // 创建jobDetail实例,绑定Job实现类
            // 指明job的名称,所在组的名称,以及绑定job类
            JobDetail job = JobBuilder.newJob(jobClass)
                  .withIdentity(jobName, jobGroupName).build();
            // 定义调度触发规则
            //使用cornTrigger规则每天18点30分
            Trigger trigger = TriggerBuilder.newTrigger().withIdentity(triggerName, triggerGroupName)
                  .withSchedule(CronScheduleBuilder.cronSchedule(cron))
                  .startNow().build();
            // 把作业和触发器注册到任务调度中
            scheduler.scheduleJob(job, trigger);
            // 启动调度
            scheduler.start();
      } catch (Exception e) {
            logger.warn("执行" + jobName + "组" + jobName + "任务出现异常E:[" + e.getMessage() + "]");
      }
    }
}

864414452 发表于 2018-11-4 11:33

这个很不错,项目中用到了.先留个言待看

孤城落寞 发表于 2018-11-4 22:14

可以试试

new_ 发表于 2018-11-13 12:08

可以的,加深知识点,非常感谢楼主的整理.

TC5588 发表于 2019-5-29 14:59

大哥,看到回复我一下,不是要收java    我对这个很感兴趣,东西很棒!
页: [1]
查看完整版本: 【学习分享】关于Quartz定时框架的学习分享