quartz 是一个很简单,很方便使用的定时任务框架,想要用起来 quartz一般只需要关注三个问题,

  1. 我需要做什么?
  2. 什么时候做?
  3. 什么时候做什么事?

下面我将演示一下 控制台如何跑 quartz

1.pom 配置

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

2.任务编写

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

import java.util.Date;

public class MyJob implements Job {

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("执行了...."+new Date());
    }
}

3.控制台执行

public class RunQuartz {

    public static void main(String[] args) throws SchedulerException {

        // 1,创建 job,你要做什么事?
        JobDetail job = JobBuilder.newJob(MyJob.class).build();

        // 2,创建  trigger ,你在什么时候做?
        Trigger trigger = TriggerBuilder
                .newTrigger()
                .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(2)).build();

        // 3,创建 schedule 对象,在什么时候执行什么事?
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

        scheduler.scheduleJob(job, trigger);
        // 4,启动
        scheduler.start();

    }

}
Trigger 那里的  withSchedule 里面可以写很多关于时间的参数,SimpleScheduleBuilder.可以出来很多方法.

Trigger那里也可以写 cron 表达式,cron 表达式不懂得,可以看我的这篇文章,文章最下面有介绍https://blog.csdn.net/yali_aini/article/details/85039241

 

如果换成 cron 表达式得话,此处就是这样写:

Trigger trigger = TriggerBuilder
        .newTrigger()
        .withSchedule( CronScheduleBuilder.cronSchedule("0/2 * * * * ?") ).build();

 

运行效果:

quartz定时任务之初始quartz

相关文章: