Quartz 定時任務框 簡單使用
阿新 • • 發佈:2019-01-06
下載 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 分