1. 需要导入的包
quartz-2.2.1.jar
quartz-jobs-2.2.1.jar
slf4j-api-1.6.6.jar
slf4j-log4j12-1.6.6.jar
log4j-1.2.8.jar
2. 写两个类(一定要写两个,没有public,它是访问不了的)
public class TestJob implements Job {
private Logger log = Logger.getLogger(TestJob.class);
public void execute(JobExecutionContext jExeCtx)
throws JobExecutionException {
System.out.println("Job executed...");
}
}
public class JobTest {
public static void main(String[] args) throws SchedulerException {
// specify the job' s details..
JobDetail job = JobBuilder.newJob(TestJob.class)
.withIdentity("testJob").build();
// specify the running period of the job
Trigger trigger = TriggerBuilder
.newTrigger()
.withIdentity("testTrigger1", "group1")
.withSchedule(CronScheduleBuilder.cronSchedule("0/4 * * * * ?"))
.build();
// schedule the job
SchedulerFactory schFactory = new StdSchedulerFactory();
Scheduler sch = schFactory.getScheduler();
sch.start();
sch.scheduleJob(job, trigger);
}
}
到了这一步,你还是运行不起来的,还需要加一个文件在里面,注意这个文件只能放在classpath目录下,即是src目录下。
log4j.properties
log4j.rootLogger=debug,sysout
# sysout log configuration
log4j.appender.sysout=org.apache.log4j.ConsoleAppender
log4j.appender.sysout.Target=System.out
log4j.appender.sysout.Threshold=debug
log4j.appender.sysout.layout=org.apache.log4j.PatternLayout
log4j.appender.sysout.layout.ConversionPattern=%d{dd.MM.yyyy HH:mm:ss} %5p (%F:%L) - %m%n
到这里,你就可以运行这个文件了。
如果在job中有sleep,它还是会按间隔的时间来运行的,这一点请注意。
注意一些符号的用途:
星号:表示任意时刻
问号:只能在日或周字段上使用
减号:范围,如 1-5秒
逗号:列表,如 1,5,10 秒
斜杠:等步长序列,如3/13秒 表示 3,16,29,42,55,3,16...
0 0 12 * * ? 每天12点触发
0 15 10 ? * * 每天10点15分触发
0 15 10 * * ? 每天10点15分触发
0 15 10 * * ? * 每天10点15分触发
0 15 10 * * ? 2005 2005年每天10点15分触发
0 * 14 * * ? 每天下午的 2点到2点59分每分触发
0 0/5 14 * * ? 每天下午的 2点到2点59分(整点开始,每隔5分触发)
0 0/5 14,18 * * ? 每天下午的 2点到2点59分(整点开始,每隔5分触发) 每天下午的 18点到18点59分(整点开始,每隔5分触发)
0 0-5 14 * * ? 每天下午的 2点到2点05分每分触发
0 10,44 14 ? 3 WED 3月分每周三下午的 2点10分和2点44分触发
0 15 10 ? * MON-FRI 从周一到周五每天上午的10点15分触发
0 15 10 15 * ? 每月15号上午10点15分触发
0 15 10 L * ? 每月最后一天的10点15分触发
0 15 10 ? * 6L 每月最后一周的星期五的10点15分触发
0 15 10 ? * 6L 2002-2005 从2002年到2005年每月最后一周的星期五的10点15分触发
0 15 10 ? * 6#3 每月的第三周的星期五开始触发
0 0 12 1/5 * ? 每月的第一个中午开始每隔5天触发一次
0 11 11 11 11 ? 每年的11月11号 11点11分触发(光棍节)