Quartz(基础)

1. Quartz是定时任务的调度, 设置好触发时间和要调度的任务即可. 

2 依赖

<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>

3 过程

  (1) 编写任务类,实现Job接口

import java.util.Date;

/**任务类, 实现job接口, 业务逻辑写在execte方法中
 * author wmq
 *
 * @date 2020/12/615:56
 */
public class HelloJob implements Job {
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println(new Date() + "HelloJob execute");
    }
}

(2)应用

package com.qf;

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

/**
 * author wmq
 *
 * @date 2020/12/79:22
 */
public class CoreTriggerDemo {
    public static void main(String[] args) throws SchedulerException {
//        调度器(核心组件, 调度触发器trigger执行任务jobDetail)
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        //触发器, 定义触发规则
//        SimpleTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
//                .startNow()
//                .withSchedule(SimpleScheduleBuilder.simpleSchedule()
//                        .withIntervalInMilliseconds(100).withRepeatCount(0)
//                )
//                .build();
        CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trgger2", "group2")
                .withSchedule(CronScheduleBuilder.cronSchedule("*/2 * * * * ?"))
                .build();
        //jobDetail实例
        JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)
                .withIdentity("job1", "group1")
                .build();

//        注册(将任务和触发器注册到调度器中)
        scheduler.scheduleJob(jobDetail, trigger);
//        执行(启动调度器)
        scheduler.start();
    }
}
备注: cronSchedule表达式
* 任意
? 常用在周位 忽略
, 多个
/ 每隔 0/3在秒位上时表示: 从0秒开始, 每隔3秒执行一次
- 至 0-3 表示0秒1秒2秒 3秒

https://www.bejson.com/othertools/cron/网站是cron表达式的网站
posted @ 2020-12-07 15:04  当当和瓶瓶  阅读(118)  评论(0编辑  收藏  举报