下载 quartz 框架地址:http://www.quartz-scheduler.org/downloads/
用到的jar包:1.quartz-2.2.3.jar
2.log4j-1.2.16.jar
3.slf4j-api-1.7.7.jar
4.slf4j.log4j12-1.7.7.jar
public class SyncNewsController implements Job {
private String TAG="SyncNewsController";
private String endkey="";
private String newkey="";
private int pageSize;
private int page=1;
private SyncNewsDao mNewsDao;
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
Log.i(TAG,"execute=="+System.currentTimeMillis());
}
}
执行类:
public static void main(String[] arg){
startCronSchedule();
}
/** 大间隔执行 */
private void startCronSchedule() {
try {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
JobDetail jobDetail = JobBuilder.newJob(SyncNewsController.class).withIdentity("Cronjob1_1", "CronGroup1").build();
CronScheduleBuilder builder = CronScheduleBuilder.cronSchedule("0 36 17 * * ?");
CronTrigger cornTrigger = TriggerBuilder.newTrigger().withIdentity("Crontrigger1_1", "CronGroup1").startNow().withSchedule(builder).startNow().build();
scheduler.scheduleJob(jobDetail, cornTrigger);
scheduler.start();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
/** 小间隔执行 */
public void startSimpleSchedule() {
try {
// 1、创建Scheduler
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// 2、定义一个Trigger
SimpleScheduleBuilder builder = SimpleScheduleBuilder
.simpleSchedule()
// 设置间隔执行时间
.withIntervalInHours(1)
// 设置执行次数
.repeatForever();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("Simpletrigger1_1", "SimpleGroup1")
.startNow()
.withSchedule(builder)
.build();
// 3、创建一个JobDetail实例,指定Quartz
JobDetail jobDetail = JobBuilder.newJob(SyncNewsController.class).withIdentity("Simplejob1_1", "SimpleGroup1").build();
// 4、调度执行
scheduler.scheduleJob(jobDetail, trigger);
scheduler.start();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
时间定义格式:
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 点 55 分每隔 5 分钟
0 0/5 14,18 * * ? 每天下午 2 点到 2 点 55 分, 下午 6 点到 6 点 55 分, 每隔 5 分钟
0 0-5 14 * * ? 每天下午 2 点到 2 点 5 分的每一分钟
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 L-2 * ? 每月最后两天的上午10点15分
0 15 10 ? * 6L 每月的最后一个星期五的上午 10 点 15 分
0 15 10 ? * 6L 2002-2005 2002 年到 2005 年每个月的最后一个星期五的上午 10 点 15 分
0 15 10 ? * 6#3 每月的第三个星期五的上午 10 点 15 分
0 0 12 1/5 * ? 每月的 1 号开始每隔 5 天的中午 12 点
0 11 11 11 11 ? 每年 11 月 11 号上午 11 点 11 分