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

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