Include
既然你能找到这里,就说明你对QuartZ有了基本的了解,至少……你知道它是用来干嘛的,并且你正需要用到它:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
How to do
OK,在pom.xml中引入QuartZ,然后我们先通过一个Demo来了解一下它的工作原理:
- 新建一个类,实现
Job
接口,在execute()
方法中告诉它你要做什么 - 新建一个类,在主函数中定义
Scheduler
的工作流程 - Run Code
1. ScheduleTask.java
public class ScheduleTask implements Job {
//Logger用于打印日志,如果不想引入,可以使用System.out.println()
Logger logger = Logger.getLogger(getClass());
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
logger.error("执行调度任务");
}
}
2. ScheduleUtils.java
public class ScheduleUtils {
Logger logger = Logger.getLogger(getClass());
public static void main(String[] args){
try {
//获取任务实例
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
//具体任务
JobDetail job = JobBuilder
.withIdentity("job1","group1")
.build();
//触发时间点,这里使用cron表达式,每五秒执行一次
CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder
.cronSchedule("*/5 * * * * ?");
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("trigger1","group1")
.withSchedule(cronScheduleBuilder).build();
//交由Schedular触发
scheduler.scheduleJob(job,trigger);
} catch (SchedulerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
3. Run Code(直接在ScheduleUtils中执行主函数即可)
2017-05-04 21:57:50.014 schedule.ScheduleTask - 执行调度任务
2017-05-04 21:57:55.008 schedule.ScheduleTask - 执行调度任务
2017-05-04 21:58:00.015 schedule.ScheduleTask - 执行调度任务
2017-05-04 21:58:05.004 schedule.ScheduleTask - 执行调度任务
是的,如此简单的Demo,无需配置文件,无需复杂流程,所以肯定也实现不了你的需求吧,别慌,往下看