利用quartz写的简单定时任务

首先需要写一个继承了JOB的类,这相当于是Timer里面的TimerTask。实现里面的execute方法(就像实现TimerTask中的run方法一样),在里面写这个任务的业务逻辑。

package com.csyd.helloquartz;

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

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by ChengShanyunduo
 * 2018/3/7
 */
public class HelloJob implements Job {
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        //打印当前执行时间
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        System.out.println(sf.format(date));
        //编写具体的业务逻辑
        System.out.println("Hello quartz");
    }
}


然后写一个main方法,来实现这个定时任务。使用quartz除了需要job之外,还需要一个JobDetail和一个Trigger,这是标配,然后把它放到Scheduler中创建。

package com.csyd.helloquartz;

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

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by ChengShanyunduo
 * 2018/3/7
 */
public class HelloScheduler {
    public static void main(String[] args) throws SchedulerException {
        //创建一个jobDetail实例。将该实例与HelloJob绑定
        JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).withIdentity("myJob", "group1").build();
        //创建一个Trigger实例。定义该job立即执行。并且每隔两秒钟执行一次
        Trigger trigger = TriggerBuilder.
                newTrigger().
                //这里的group1与上面是不同的
                withIdentity("myTrigger", "group1").
                startNow()
                .withSchedule(
                        SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever()
                ).build();
        //创建scheduler实例
        SchedulerFactory sfact = new StdSchedulerFactory();
        Scheduler scheduler = sfact.getScheduler();
        scheduler.start();
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        System.out.println("程序开始时间" + sf.format(date));
        scheduler.scheduleJob(jobDetail, trigger);


    }
}


学习视频:https://www.imooc.com/learn/846

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页