吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3045|回复: 8
收起左侧

[Java 转载] 【学习分享】关于Quartz定时框架的学习分享

[复制链接]
Js_Aaron 发表于 2018-11-4 10:24
本帖最后由 Js_Aaron 于 2018-11-4 11:29 编辑

Quartz.png

免费评分

参与人数 1吾爱币 +1 收起 理由
lbwb2 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

lbwb2 发表于 2018-11-4 10:36
好好学习天天上线
111qaz 发表于 2018-11-4 10:44
 楼主| Js_Aaron 发表于 2018-11-4 11:27
 楼主| Js_Aaron 发表于 2018-11-4 11:30
[Java] 纯文本查看 复制代码
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    我对这个很感兴趣,东西很棒!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 10:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表