quartz2.0运用

quartz2.0使用

 

package com.csl.quartz;

import static org.quartz.CronScheduleBuilder.cronSchedule;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;

import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;

public class QuartzTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		 SchedulerFactory sf = new StdSchedulerFactory();
	        Scheduler sched = sf.getScheduler();


	        // jobs can be scheduled before sched.start() has been called

	        // job 1 will run every 20 seconds
	        String groupName = "group1";
	        JobDetail job = newJob(SimpleJob.class)
	            .withIdentity("job1", groupName)
	            .build();
	        
	        CronTrigger trigger = newTrigger()
	            .withIdentity("trigger1", groupName)
	            .withSchedule(cronSchedule("0/20 * * * * ?"))
	            .build();
		
	        sched.start();
	}

}

 

 

 

 

public class SimpleJob implements Job {

 public void execute(JobExecutionContext context) throws JobExecutionException {
     System.out.println("xxxxxxx");
 }

}

 

 此文摘自quartz的example3

 

文中job的groupName和trigger的groupName必须保持一致,

 

"0/20 * * * * ?"  可配置于配置文件中,但配置文件名不可为quartz.properties,因为StdSchedulerFactory在获取getScheduler的时候会自动去类路径下寻找quartz.properties,然后做一些初始化,如果没有quartz.properties也就算了,如果有的话,以至于一些属性没有配置会导致启动出错,Exception:Thread count must be >0

1 楼 felsenlee 2011-04-04  
官网上没看到java版本,是不是java1.5不支持?
2 楼 wr123 2011-09-09  
最近把公司原来的定时项目进行重构,准备使用quartz2,发现2.0在数据库方式下好像不能支持监听器的存储了,不知道楼主有没有好的办法
3 楼 lteb2002 2011-10-15  
newJob是JobBuilder类的一个静态方法,为啥不用类名呢?看得人一头雾水,Trigger也是。
4 楼 zhangq168 2011-10-17  
lteb2002 写道
newJob是JobBuilder类的一个静态方法,为啥不用类名呢?看得人一头雾水,Trigger也是。

各自的写法习惯而已,自己习惯用哪种就用哪种呗