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 閱讀(580) 評論(0)  編輯  收藏 所屬分類: Appfuse

          導航

          統計

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Hibernate

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 北碚区| 德州市| 镇平县| 宁化县| 龙江县| 临朐县| 专栏| 韶关市| 芮城县| 嵊泗县| 彰武县| 乡城县| 金川县| 仙桃市| 湖北省| 青田县| 海淀区| 营口市| 肃南| 韩城市| 景泰县| 瑞丽市| 海晏县| 密云县| 天门市| 洛川县| 太和县| 龙州县| 宁安市| 佛学| 乳山市| 贡山| 武穴市| 禹城市| 赞皇县| 滦平县| 双鸭山市| 广河县| 遵义市| 临夏市| 基隆市|