quartz 是一个很简单,很方便使用的定时任务框架,想要用起来 quartz一般只需要关注三个问题,
- 我需要做什么?
- 什么时候做?
- 什么时候做什么事?
下面我将演示一下 控制台如何跑 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.youkuaiyun.com/yali_aini/article/details/85039241
如果换成 cron 表达式得话,此处就是这样写:
Trigger trigger = TriggerBuilder .newTrigger() .withSchedule( CronScheduleBuilder.cronSchedule("0/2 * * * * ?") ).build();
运行效果: