Quartz定时任务调度框架

目录

一、引言

二、基本使用

1、导入依赖

2、定义一个工作类(也就是要定时执行的任务)

3、编写主函数进行测试

 4、Quzrtz的配置

5、主要类说明

三、触发器种类

    1、SimpleTrigger

    2、CronTrigger

四、Cron表达式


目录

一、引言

二、基本使用

三、触发器种类

    1、SimpleTrigger

    2、CronTrigger

四、Cron表达式


一、引言

Quartz是一个定时任务调度框架。

二、基本使用

1、导入依赖

<!--   导入定时任务调度框架Quartz     -->
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.3.2</version>
        </dependency>

2、定义一个工作类(也就是要定时执行的任务)

public class TestJob implements Job {
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        //jobExecutionContext内有getJobDetail
        JobDetail jobDetail = jobExecutionContext.getJobDetail();
        System.out.println(jobDetail.getKey().getName());
        System.out.println(jobDetail.getKey().getGroup());
//        要执行的任务
        System.out.println("执行的任务!");
    }
}

3、编写主函数进行测试

public class TestQuartz {
    public static void main(String[] args) {
        try {
            //创建调度器
            Scheduler defaultScheduler = StdSchedulerFactory.getDefaultScheduler();
            //定义触发条件
            SimpleTrigger trigger = TriggerBuilder.newTrigger()
                    .withIdentity("trigger1", "group1")
                    .startNow()
                    .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                            .withIntervalInSeconds(1)  //执行时间间隔
                            .repeatForever())  //总是执行下去
                    .endAt(new GregorianCalendar(2022, 4, 29, 16, 10, 0).getTime())
                    .build();
            //定义工作
            JobDetail jobDetail = JobBuilder.newJob(TestJob.class)
                    .withIdentity("job1", "group1")
                    .build();
            //在调度器中将触发条件和工作都添加进去
            defaultScheduler.scheduleJob(jobDetail,trigger);
            //启动任务调度
            defaultScheduler.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 4、Quzrtz的配置

        请查看后续更新。。。

5、主要类说明

   Scheduler:调度器。

   Job:任务。执行的任务继承它,重写里面的方法。

   JobDetail:基于Job进一步包装的类。

   Trigger:触发器。

三、触发器种类

    1、SimpleTrigger

        定义开始时间,中间定义执行次数、时间间隔等信息,结束时间。

SimpleTrigger trigger = TriggerBuilder.newTrigger()
                    .withIdentity("trigger1", "group1")
                    .startNow()
                    .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                            .withIntervalInSeconds(1)  //执行时间间隔
                            .repeatForever())  //总是执行下去
                    .endAt(new GregorianCalendar(2022, 4, 29, 16, 10, 0).getTime())
                    .build();

    2、CronTrigger

        利用cron表达式设置触发机制。(具体Cron表达式含义见下节)

        4月29日,每秒执行一次。

CronTrigger build = TriggerBuilder.newTrigger()
                    .withIdentity("trigger1", "group1")
                    .withSchedule(CronScheduleBuilder.cronSchedule("* * * 29 4 ?"))
                    .build();

四、Cron表达式

         表达式由(秒 、分、时、日、月、周、【年】)其中年可写可不写。

特殊符号含义:

*  (星号)     表示所有。

? (问号)     表示不确定的值

-  (减号)     表示范围,  如6-10

,  (逗号)     表示几个值,如星期内 MON,WED,FRI。

/  (斜杠)     表示步长 间隔多长时间,如在分钟内 */2 表示每两分钟。

# (井号)     只用于周字段内,5#1代表第一个星期四,3#2代表第二个星期二。

。。。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值