Quartz的学习记录

首先写一个Quartz的简单例子:

1.新建一个maven项目,pom.xml中加入quartz的依赖:

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

2.新建quartz.properties文件,放在classpath下,添加如下配置:

#此调度程序的名称将为“MyScheduler”
org.quartz.scheduler.instanceName = MyScheduler

#线程池中有3个线程,这意味着最多可以同时运行3个job。
org.quartz.threadPool.threadCount = 3

#quartz的所有数据,包括job和trigger的配置,都会存储在内存中(而不是数据库里)
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

3.新建一个类继承org.quartz.Job:

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

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

public class QuartzJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(date));
}
}

4.创建Scheduler执行任务:

import com.quartzdemo.QuartzJob;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;

import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;

public class QuartzTest {
public static void main(String[] args) {
try {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
JobDetail job = newJob(QuartzJob.class).withIdentity("job1","group1").build();
Trigger trigger = newTrigger().withIdentity("trigger1","group1")
.startNow()
.withSchedule(simpleSchedule()
.withIntervalInSeconds(1)
.repeatForever())
.build();
scheduler.scheduleJob(job,trigger);
// Thread.sleep(6000);可以指定执行多长时间后关闭Scheduler
// scheduler.shutdown();关闭Scheduler
} catch (SchedulerException | InterruptedException e) {
e.printStackTrace();
}
}
}

5.执行结果:

 ...

该程序会一直执行,也可以通过设置一定时间后结束执行。

 





猜你喜欢

转载自www.cnblogs.com/aliceQin/p/12294533.html