Appfuse的Quartz配置
在實際項目開發過程中,我們經常會遇到在一個特定的時間處理特定的事情,比如,在每個星期天的晚上11點運算MRP。這里我們就可以用到Quartz的定時執行功能。在本例子中,我們只是簡單的展示在特定的時間內,向數據庫insert 一條記錄。
一、準備工作。
1、下載 Quartz1.6
https://quartz.dev.java.net/files/documents/1267/43545/quartz-1.6.0.zip
二、安裝到Lib目錄下
1、
把quartz-
2、 進入Appfuse的項目目錄,比如: D:\myproject
3、執行命令:mvn install:install-file
-Dfile=quartz-
三、 編寫具體的Bean和方法
SyslogDao syslogDao;
public SyslogManagerImpl(SyslogDao syslogDao) {
super(syslogDao);
this.syslogDao = syslogDao;
}
public void writesyslog(){
Syslog syslog = new Syslog();
syslog.setModel("test");
Date optime = new Date();
syslog.setOpTime(optime);
syslog.setUserid(new Long(1));
syslogDao.writeLog(syslog);
}
}
四、配置Spring的ApplicationContext-Services.xml
<!-- Quartz configuration -->
<!-- =================================================================== -->
<!-- Schedule task configuration -->
<bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="syslogManager"/>
<property name="targetMethod" value="writesyslog"/>
<property name="concurrent" value="false" />
</bean>
<!—這里定義每小時的第2分種和第3分種此行方法-->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="methodInvokingJobDetail"/>
<property name="cronExpression" value="0 2,3 * * * ?"/>
</bean>
<bean id="quartzCronBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
<property name="triggers">
<list>
<ref bean="cronTrigger"/>
</list>
</property>
</bean>
注意:這里的設置lazy-init="false",否則定時的方法不會被執行。
參考:
http://java.chinaitlab.com/advance/743501_2.html
http://flytogether.javaeye.com/blog/64909
posted on 2008-09-06 22:42 gdufo 閱讀(580) 評論(0) 編輯 收藏 所屬分類: Appfuse