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

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 文登市| 渭源县| 镇沅| 汉阴县| 南召县| 教育| 米泉市| 政和县| 龙里县| 托里县| 美姑县| 淅川县| 垣曲县| 萨嘎县| 瑞安市| 济南市| 湟源县| 内江市| 五原县| 浏阳市| 和林格尔县| 江源县| 衡东县| 日喀则市| 磐石市| 泰和县| 甘泉县| 高邑县| 赣榆县| 汕头市| 江门市| 富宁县| 图木舒克市| 定远县| 宁都县| 平乐县| 岳池县| 霍山县| 视频| 清水县| 册亨县|