1. 包
log4j-1.2.16.jar
quartz-2.2.3.jar
slf4j-api-1.7.7.jar
slf4j-log4j12-1.7.7.jar
(文末提供下载地址)
2.配置
3.MyJob.java
package com.xfsy.quartz;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
// TODO Auto-generated method stub
//... do something
}
}
4.方式一:SimpleTriggerExample.java
package com.xfsy;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
public class SimpleTriggerExample {
public static void main(String[] args) {
JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("JobName", "groupName").build();
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("TriggerName", "groupName")
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5).repeatForever()).build();
Scheduler scheduler;
try {
scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
} catch (SchedulerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
5.方式二:CronTriggerExample.java
package com.xfsy;
import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
public class CronTriggerExample {
private static Scheduler scheduler;
public static void main(String[] args) throws Exception {
JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("JobName", "groupName").build();
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("TriggerName", "groupName")
.withSchedule(
// CronScheduleBuilder.cronSchedule("0/5 * * * * ?"))
CronScheduleBuilder.cronSchedule("0 25 11 10 05 ? 2017"))
.build();
// schedule it
scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
// scheduler.shutdown();
}
public static void stop() {
try {
scheduler.shutdown();
} catch (SchedulerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
6.传递参数
第4或5页面添加:
JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("JobName" + i, "groupName").build();
job.getJobDataMap().put("name", name);
第2页面添加:
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
// TODO Auto-generated method stub
String info = arg0.getJobDetail().getJobDataMap().getString("name");
System.out.println(info);
}
7.cron中的时间问题
cron 或者 crontab
8.停止
scheduler.shutdown();
9.多任务
10.监听
11.Java包下载
http://download.csdn.net/download/qq_28336351/9839624