可重复执行的scheduler,使用simpleTrigger,由于其他代码相同,在这里指给出quartzClass的java代码:
quartzClass.java:
与入门学习(一)中的例子二不同之处在于
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("Trigger1", "gourp1")
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withRepeatCount(10)
.withIntervalInSeconds(5)).startAt(rundate).build();
多加了一些代码。
withRepeatCount(10)表示一共执行10次。
withIntervalinseconds(5)表示每隔五秒钟执行一次
可重复执行的scheduler,使用CronTrigger:
CronTrigger trigger = TriggerBuilder.newTrigger()
.withIdentity("Trigger1", "gourp1").withSchedule(CronScheduleBuilder.cronSchedule("* * * * * ?")).build();
scheduler.scheduleJob(job, trigger);
withSchedule(CronScheduleBuilder.cronSchedule("* * * * * ?"))
括号中的内容为schedule的表达式,与linux中的相似。
星号:表示任意时刻
问号:只能在日或周字段上使用,http://blog.csdn.net/chh_jiang/article/details/4603529 这里有比较清晰的解释,简单的理解就是日期和星期是有冲突的,指定其中一个的话,另外一个是没办法指定的,比如每个月12号和每个星期二,这两个是"互斥"的,不能用日期和周来指定所有“每个是星期二的12号”这个时间。
减号:范围,如 1-5秒
逗号:列表,如 1,5,10 秒
斜杠:等步长序列,如3/13秒 表示 3,16,29,42,55,3,16...
L:仅在日和周上支持,表示允许的最后一个值,注意不要让范围和列表与L连用
W:工作日
井号:为给定月份指定具体的工作日实例。把“MON#2”放在周内日期字段中,表示把任务安排在当月的第二个星期一。
quartzClass.java:
public class quartzClass {
public static void main(String[] args) throws SchedulerException {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
Date rundate = new Date();
JobDetail job = JobBuilder.newJob(MyJob.class)
.withIdentity("Job1", "group1").build();
Trigger trigger = TriggerBuilder
.newTrigger()
.withIdentity("Trigger1", "gourp1")
.withSchedule(
SimpleScheduleBuilder.simpleSchedule()
.withRepeatCount(10).withIntervalInSeconds(5))
.startAt(rundate).build();
scheduler.scheduleJob(job, trigger);
scheduler.start();
try {
Thread.sleep(60L * 1000L);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
scheduler.shutdown(true);
}
}
与入门学习(一)中的例子二不同之处在于
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("Trigger1", "gourp1")
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withRepeatCount(10)
.withIntervalInSeconds(5)).startAt(rundate).build();
多加了一些代码。
withRepeatCount(10)表示一共执行10次。
withIntervalinseconds(5)表示每隔五秒钟执行一次
可重复执行的scheduler,使用CronTrigger:
public class quartzClass {
public static void main(String[] args) throws SchedulerException {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
Date rundate = new Date();
JobDetail job = JobBuilder.newJob(MyJob.class)
.withIdentity("Job1", "group1").build();
CronTrigger trigger = TriggerBuilder.newTrigger()
.withIdentity("Trigger1", "gourp1")
.withSchedule(CronScheduleBuilder.cronSchedule("* * * * * ?"))
.build();
scheduler.scheduleJob(job, trigger);
scheduler.start();
try {
Thread.sleep(60L * 1000L);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
scheduler.shutdown(true);
}
}
CronTrigger trigger = TriggerBuilder.newTrigger()
.withIdentity("Trigger1", "gourp1").withSchedule(CronScheduleBuilder.cronSchedule("* * * * * ?")).build();
scheduler.scheduleJob(job, trigger);
withSchedule(CronScheduleBuilder.cronSchedule("* * * * * ?"))
括号中的内容为schedule的表达式,与linux中的相似。
星号:表示任意时刻
问号:只能在日或周字段上使用,http://blog.csdn.net/chh_jiang/article/details/4603529 这里有比较清晰的解释,简单的理解就是日期和星期是有冲突的,指定其中一个的话,另外一个是没办法指定的,比如每个月12号和每个星期二,这两个是"互斥"的,不能用日期和周来指定所有“每个是星期二的12号”这个时间。
减号:范围,如 1-5秒
逗号:列表,如 1,5,10 秒
斜杠:等步长序列,如3/13秒 表示 3,16,29,42,55,3,16...
L:仅在日和周上支持,表示允许的最后一个值,注意不要让范围和列表与L连用
W:工作日
井号:为给定月份指定具体的工作日实例。把“MON#2”放在周内日期字段中,表示把任务安排在当月的第二个星期一。