CronTriger 时间计划触发器
/**
* <p>
* Create a <code>CronTrigger</code> with fire time dictated by the
* <code>cronExpression</code> resolved with respect to the specified
* <code>timeZone</code> occurring from the <code>startTime</code> until
* the given <code>endTime</code>.
* </p>
*
* <p>
* If null, the start-time will also be set to the current time. If null,
* the time zone will be set to the system's default.
* </p>
*
* @param name
* of the <code>Trigger</code>
* @param group
* of the <code>Trigger</code>
* @param jobName
* name of the <code>{@link org.quartz.JobDetail}</code>
* executed on firetime
* @param jobGroup
* group of the <code>{@link org.quartz.JobDetail}</code>
* executed on firetime
* @param startTime
* A <code>Date</code> set to the earliest time for the <code>Trigger</code>
* to start firing.
* @param endTime
* A <code>Date</code> set to the time for the <code>Trigger</code>
* to quit repeat firing.
* @param cronExpression
* A cron expression dictating the firing sequence of the <code>Trigger</code>
* @param timeZone
* Specifies for which time zone the <code>cronExpression</code>
* should be interpreted, i.e. the expression 0 0 10 * * ?, is
* resolved to 10:00 am in this time zone.
* @throws ParseException
* if the <code>cronExpression</code> is invalid.
*/
public CronTrigger(String name, String group, String jobName,
String jobGroup, Date startTime, Date endTime,
String cronExpression, TimeZone timeZone) throws ParseException {
super(name, group, jobName, jobGroup);
setCronExpression(cronExpression);
if (startTime == null) {
startTime = new Date();
}
setStartTime(startTime);
if (endTime != null) {
setEndTime(endTime);
}
if (timeZone == null) {
setTimeZone(TimeZone.getDefault());
} else {
setTimeZone(timeZone);
}
}
Ps:此例子大量使用了
sched.addJob(job, true);
,而trigger和Jobd的关联是通过trigger的构造方法里的jobName进行关联,和
sched.scheduleJob(job, trigger);
作用应该是一样的,只不过后者的关联关系更明显。
cronExpresstion,时间计划表达式,要用的时候可以谷歌,有详细的说明