定时任务Quartz入门

2020-02-24 16:04:04来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

定时任务Quartz入门

package com.hhh.quartz;

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

import java.util.Date;

/**
 * 调度器的具体使用
 * @auto 3hzpf
 * @Date 2020年2月24日15:35:43
 */
public class MySchedule {

    public static void main(String[] args) throws SchedulerException {
        // 1. 获取调度器Schedule
        SchedulerFactory sdf = new StdSchedulerFactory();

        Scheduler scheduler = sdf.getScheduler(); // 获取调度器

        // 2. 获取JobDetail,并于PrintWordJob进行绑定
        JobDetail jobDetail = JobBuilder.newJob(PrintWordJob.class)
                .usingJobData("JobDetail","JobDetail") // 绑定JobDetail参数
                .withIdentity("jobDetail","jobDetailGroup")
                .build();
        Date startDate = new Date();
        startDate.setTime(startDate.getTime() + 5000);

        Date endDate = new Date();
        endDate.setTime(startDate.getTime() + 5000);

        // 3. 获取CronTrigger
        CronTrigger cronTrigger = TriggerBuilder.newTrigger()
                .usingJobData("CronTrigger","CronTrigger")
                .withIdentity("CronTrigger","CronTriggerGroup")
                .startNow()
                .startAt(startDate)
                .endAt(endDate)
                .withSchedule(CronScheduleBuilder.cronSchedule("* * * * * ?")) // 此处使用了Cron表达式
                .build();

        scheduler.scheduleJob(jobDetail,cronTrigger);
        System.out.println("--------scheduler start ! ------------");
        scheduler.start();
        System.out.println("--------scheduler shutdown ! ------------");
    }
}

package com.hhh.quartz;


import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;


/**
* Quart业务逻辑实现类
* @auto 3hzpf
* @Date 2020年2月24日15:35:43
*/
public class PrintWordJob implements Job {


public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("******************************************************************");


// 获取JobDetail参数
System.out.println("JobDetail参数为:" + jobExecutionContext.getJobDetail().getJobDataMap().get("JobDetail"));


// 获取CronTrigger参数
System.out.println("CronTrigger参数为:" + jobExecutionContext.getTrigger().getJobDataMap().get("CronTrigger"));


System.out.println("******************************************************************");
}
}

 

转自: https://blog.csdn.net/noaman_wgs/article/details/80984873

 

 


原文链接:https://www.cnblogs.com/PersonalDiary/p/12357357.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:手把手带你阅读Mybatis源码(三)缓存篇

下一篇:高并发之——从源码角度分析创建线程池究竟有哪些方式