CronTrigger教程
----------------------------------------------------------------------
还要引入jar 包 quartz-all-1.6.4.jar,下面的例子我用的是 quartz-all-1.6.4.jar
如果服务器不同,
可以用不同的jar 包
quartz-jboss-1.6.4.jar
quartz-oracle-1.6.4.jar
quartz-weblogic-1.6.4.jar
“L”与“W”可在day of month字段联合使用“LW”,表到“每月的最后一个工作日”
“#”——指定每月第几个星期X。例如day of week字段的“6#3”,就意味着“每月第3个星期五”(day3=星期五,#3=第三个);“2#1”就意味着“每月第1个星期一”;“4#5”就意味着“每月第5个星期3。需要注意的是“#5”,如果在当月没有第5个星期三,则触发器不会触发。合法的有效字符(如月份名字与星期名字)是大小写不敏感的。MON与mon是相同的。
0 11 11 11 11 ? 每年11月11日11点11分触发一次
------------------------------------------------------------------------------------
我写了一个类!!!!!!!!!!
package com.budco.bmp.action.maintenance.temptest;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import org.quartz.CronTrigger;
import com.budco.bmp.core.util.DateUtil;
public class TestScheduleDate {
public static final String DATE_FORMAT_MONTH_DAY_YEAR_HOUR_MIN_AM_PM="MM/dd/yyyy hh:mma";
// trigger
private final static String TRIGGER_PREVIEW_SCHEDULE="triggerPreviewSchedule";
protected final static String GROUP_PREVIEW_SCHEDULE="groupPreviewSchedule";
public TestScheduleDate() {
// TODO Auto-generated constructor stub
}
protected List
final List
final CronTrigger cronTrigger=new CronTrigger(TRIGGER_PREVIEW_SCHEDULE, GROUP_PREVIEW_SCHEDULE, cron);
Date firedate=new Date();
for (int i=0; i< 10; i++) {
firedate=cronTrigger.getFireTimeAfter(firedate);
results.add(firedate);
}
return Collections.unmodifiableList(results);
}
public static void main(final String[] args) throws ParseException {
// TODO Auto-generated method stub
final TestScheduleDate tsd=new TestScheduleDate();
// protected static String default_cron="0 * * * * ?";
// final String default_cron="0 0/5 16,17 * * ?";
// final String default_cron="0 15 10 * * ? *";
// final String default_cron="0 10,30 14 ? 3 WED";
// final String default_cron="0 11 11 11 11 ?";
// final String default_cron="0 15 10 ? * MON-FRI"; // 表示周一到周五每天上午10:15执行作业
final String default_cron="0 15 10 ? * 6L 2011-2012";//2011年至2012年间,每月最后一个周五的10点15分触发一次
final List
final List
for (final Date da : dateList) {
results.add(DateUtil.format(da, DATE_FORMAT_MONTH_DAY_YEAR_HOUR_MIN_AM_PM));
}
for (final String str : results) {
System.out.println(str);
}
}
}
打印结果:
//2011年至2012年间,每月最后一个周五的10点15分触发一次
07/29/2011 10:15AM
08/26/2011 10:15AM
09/30/2011 10:15AM
10/28/2011 10:15AM
11/25/2011 10:15AM
12/30/2011 10:15AM
01/27/2012 10:15AM
02/24/2012 10:15AM
03/30/2012 10:15AM
04/27/2012 10:15AM