gdufo

           

          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-1.6.0.jar quartz-1.6.0.zip解壓到D盤根目錄。

          2、  進入Appfuse的項目目錄,比如: D:\myproject

          3、執行命令:mvn install:install-file -Dfile=quartz-1.6.0.jar -DgroupId=quartz -DartifactId=quartz -Dversion=1.6.0 -Dpackaging=jar –Dfile=D/quartz-1.6.0.jar

          三、 編寫具體的Bean和方法


          public class SyslogManagerImpl extends GenericManagerImpl<Syslog, Long> implements SyslogManager {

              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);

              }

          }

           

          四、配置SpringApplicationContext-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 閱讀(587) 評論(0)  編輯  收藏 所屬分類: Appfuse

          導航

          統計

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Hibernate

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 广河县| 康定县| 静宁县| 玛纳斯县| 盘锦市| 津南区| 旬邑县| 新建县| 张家界市| 会理县| 江阴市| 红原县| 石景山区| 竹山县| 聊城市| 巴中市| 博罗县| 乐平市| 湖州市| 阜城县| 威信县| 偃师市| 隆化县| 陆丰市| 常州市| 鲁甸县| 饶河县| 涿州市| 漯河市| 吉林省| 佛山市| 长治市| 孝昌县| 武定县| 凌海市| 蚌埠市| 青神县| 古浪县| 昌图县| 凤台县| 鲁山县|