在Spring中使用Quartz调度器
Quartz调度器为调度工作提供了更丰富的支持。和Java定时器一样,可以使用Quartz来每隔多少毫秒执行一个工作。但Quartz比Java Timer更先进之处在于它允许你调度一个工作在某个特定的时间或日期执行。
关于Quartz的更多信息,可以访问Quartz位于http://www.opensymphony.com/quartz的主页。
让我们从定义发送报表邮件的工作开始使用Quartz:
创建一个工作
定义Quartz工作的第一步是创建一个类来定义工作。要做到这一点,你需要从Spring的QuartzJobBean中派生子类,如以下程序所示:
程序:定义一个Quartz工作
public class EmailReportJob extends QuartzJobBean {public EmailReportJob() {}protected void executeInternal(JobExecutionContext context) throws JobExecutionException { courseService.sendCourseEnrollmentReport(); }private CourseService courseService; public void setCourseService(CourseService courseService) {this.courseService = courseService; }}
<bean id="reportJob" name="code"><bean id="simpleReportTrigger" name="code"><bean id="cronReportTrigger" name="code"><bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="cronReportTrigger"/> </list> </property></bean>