Quartz定时任务笔记

1.springboot创建时勾选!        Quartz Scheduler

 

2.导入pom依赖(需要JDBCJobStor存储方式时需要导入)

<dependency>
     <groupId>org.quartz-scheduler</groupId>
     <artifactId>quartz-jobs</artifactId>
     <version>2.2.1</version>
</dependency>

3.创建一个执行定时方法的类

package com.company.quartz01.quartz;

import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class RamJob implements Job {
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("执行了定时任务..........");

//        接收传递过来的参数并打印
        JobDataMap jobDataMap = jobExecutionContext.getJobDetail().getJobDataMap();
        System.out.println(jobDataMap.get("level") +""+ jobDataMap.get("job"));
    }
}

4.创建一个启动调度器的方法

package com.company.quartz01;

import com.company.quartz01.quartz.RamJob;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

import static org.quartz.JobBuilder.newJob;

/**
 * @author 小伙子
 * @create 2019-02-24-18:41
 */
public class quartzTest {
    public static void main(String[] args) throws SchedulerException {
//        创建调度器
        Scheduler scheduler = new StdSchedulerFactory().getScheduler();
//        将具体的作业类(RamJob)绑定到调度任务详情中
        /*
        withDescription中的参数:描述
        withIdentity中的参数:
                name : 这个任务的唯一标识
                group :分组
         */
        JobDetail jobDetail = newJob(RamJob.class)
                .withDescription("this is a job")
                .withIdentity("job2","group2")
//                向具体工作类(RamJob)传递参数
                .usingJobData("level","老")
                .build();
//        向工作类传递参数的另外一种方法
        JobDataMap jobDataMap = jobDetail.getJobDataMap();
        jobDataMap.put("job","司机");

//        创建触发器
        Trigger trigger = TriggerBuilder.newTrigger()
                .withDescription("this is a trigger1")
//                循环执行三次每次间隔10s
                .withSchedule(SimpleScheduleBuilder.repeatSecondlyForTotalCount(3,10))
//                每天的19点10分5秒的时候执行
//                .withSchedule(CronScheduleBuilder.cronSchedule("05 10 19 * * ?"))
                .withIdentity("trigger1","group1")
                .build();
//        方法:
//              withDescription     :       添加一个描述
//              withIdentity        :       设置一个id
//              withSchedule        :       设置调度器

//        将触发器以及调度任务详情绑定到调度器上
        scheduler.scheduleJob(jobDetail,trigger);
//        启动调度器
        scheduler.start();
    }
}

这样就完成了一个简单的Quartz定时器

 

生成时间的网址:http://jason.hahuachou.com/cron/index.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章