1、下载地址:http://quartz-scheduler.org/downloads/catalog
http://quartz-scheduler.org/downloads/destination?name=quartz-2.2.1-distribution.tar.gz&bucket=tcdistributions&file=quartz-2.2.1-distribution.tar.gz
2、quartz-2.1.5文件根目录中有很多jar包,Quartz 最核心的包就是quartz-all-2.1.5.jar,如果需要用到其他Quartz 的其他特性,可以考虑将相应的包加入到classpath中,除此之外,Quartz 还依赖一些第三方的包,那些包都放在了lib目录下,将其也全部加入到classpath中
3、在src下新建一个quartz.properties文件,该文件用来配置Quartz 的一些参数
一个简单的实例:
quartz.properties文件配置内容如下:
- org.quartz.scheduler.instanceName: QuartzTest
- org.quartz.threadPool.threadCount: 3
- org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore
log4j.properties配置内容如下:
- log4j.rootLogger=INFO, stdout
- log4j.appender.stdout=org.apache.log4j.ConsoleAppender
- log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
- log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
QuartzTest.java
- package demo01;
-
- import org.quartz.JobBuilder;
- import org.quartz.JobDetail;
- import org.quartz.Scheduler;
- import org.quartz.SchedulerException;
- import org.quartz.SchedulerFactory;
- import org.quartz.SimpleScheduleBuilder;
- import org.quartz.Trigger;
- import org.quartz.TriggerBuilder;
- import org.quartz.TriggerKey;
- import org.quartz.impl.StdSchedulerFactory;
-
-
-
-
-
-
-
-
- public class QuartzTest {
-
- public static void main(String[] args) {
- new QuartzTest().run();
- }
-
- public void run() {
- try {
-
-
- SchedulerFactory sf = new StdSchedulerFactory();
- Scheduler scheduler = sf.getScheduler();
-
-
-
-
-
- JobDetail job = JobBuilder.newJob(JobTest.class).withIdentity("job1", "group1").build();
-
-
-
- Trigger trigger = TriggerBuilder.newTrigger().withIdentity(new TriggerKey("trigger1", "group1")).startNow()
- .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever())
- .build();
-
-
- scheduler.scheduleJob(job, trigger);
-
-
- scheduler.start();
-
-
- System.out.println(Thread.currentThread().getName());
- Thread.sleep(30*1000);
-
-
- scheduler.shutdown(true);
-
- } catch (SchedulerException e) {
- e.printStackTrace();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
-
- }
JobTest.java
- package demo01;
-
- import org.quartz.Job;
- import org.quartz.JobExecutionContext;
- import org.quartz.JobExecutionException;
-
- public class JobTest implements Job{
-
-
- public JobTest(){
-
- }
-
- public void execute(JobExecutionContext arg0) throws JobExecutionException {
-
-
- System.out.println("我的任务就是调用当前Job:"+this+"不断刷屏!!!");
- }
-
- }
控制台打印的结果:
- 2012-08-11 08:34:15,512 INFO [org.quartz.impl.StdSchedulerFactory] - Quartz scheduler ‘QuartzTest‘ initialized from default resource file in Quartz package: ‘quartz.properties‘
- 2012-08-11 08:34:15,512 INFO [org.quartz.impl.StdSchedulerFactory] - Quartz scheduler version: 2.1.5
- 2012-08-11 08:34:15,527 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED started.
- main
- 我的任务就是调用当前Job:demo01.JobTest@1c672d0不断刷屏!!!
- 我的任务就是调用当前Job:demo01.JobTest@1855af5不断刷屏!!!
- 我的任务就是调用当前Job:demo01.JobTest@198dfaf不断刷屏!!!
- 我的任务就是调用当前Job:demo01.JobTest@1858610不断刷屏!!!
- 我的任务就是调用当前Job:demo01.JobTest@12498b5不断刷屏!!!
- 我的任务就是调用当前Job:demo01.JobTest@1a5ab41不断刷屏!!!
- 我的任务就是调用当前Job:demo01.JobTest@18e3e60不断刷屏!!!
- 我的任务就是调用当前Job:demo01.JobTest@1a125f0不断刷屏!!!
- 我的任务就是调用当前Job:demo01.JobTest@c1cd1f不断刷屏!!!
- 我的任务就是调用当前Job:demo01.JobTest@181afa3不断刷屏!!!
- 我的任务就是调用当前Job:demo01.JobTest@131f71a不断刷屏!!!
- 我的任务就是调用当前Job:demo01.JobTest@15601ea不断刷屏!!!
- 我的任务就是调用当前Job:demo01.JobTest@197d257不断刷屏!!!
- 我的任务就是调用当前Job:demo01.JobTest@7259da不断刷屏!!!
- 我的任务就是调用当前Job:demo01.JobTest@16930e2不断刷屏!!!
- 我的任务就是调用当前Job:demo01.JobTest@1add2dd不断刷屏!!!
- 2012-08-11 08:34:45,538 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED shutting down.
- 2012-08-11 08:34:45,538 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED paused.
- 2012-08-11 08:34:46,023 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED shutdown complete.