posts - 41, comments - 15, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          spring + quartz實現web版定時任務

          Posted on 2012-06-04 16:25 yuhaibo736 閱讀(1478) 評論(0)  編輯  收藏
          1、下載Quartz java包copy到WEB-INF/lib下
          2、先寫一個抽象類繼承QuartzJobBean
          package org.yhb.task;

          import org.apache.commons.logging.Log;
          import org.apache.commons.logging.LogFactory;
          import org.quartz.JobExecutionContext;
          import org.quartz.JobExecutionException;
          import org.springframework.scheduling.quartz.QuartzJobBean;

          /**
           *
           * @author yuhb create on 2012-6-4
           *
           */
          public abstract class AbstractTask extends QuartzJobBean {
              protected final Log log = LogFactory.getLog(this.getClass());
              protected void executeInternal(JobExecutionContext context)
                      throws JobExecutionException {
                  this.execute();
              }
              protected abstract void execute();
          }

          然后寫一個類繼承上面的抽象類

          package org.yhb.task;

          public class MyTask extends AbstractTask {
              @Override
              protected void execute() {
                  System.out.println("測試定時任務?。?!");
              }
          }

          3、編寫beans-quarz.xml配置文件
          <?xml version="1.0" encoding="UTF-8" ?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
          <beans>
              <!-- ============================= Spring Quartz ================================ -->
              <bean id="myTask" class="org.springframework.scheduling.quartz.JobDetailBean">
                  <property name="jobClass" value="org.yhb.task.MyTask" />
                  <property name="jobDataAsMap">
                      <map>
                          <entry key="timeout">
                              <value>60</value>
                          </entry>
                      </map>
                  </property>
              </bean>
              <!-- 每隔2分鐘觸發一次-->
              <bean id="myTaskTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
                  <property name="jobDetail">
                      <ref bean="myTask" />
                  </property>
                  <property name="cronExpression">
                      <value>0 0/2 * * * ?</value>
                  </property>
              </bean>
              <!-- ########  總調配中心 ########## -->    
              <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
                  <property name="triggers">
                      <list>
                          <ref local="myTaskTrigger" />
                       </list>
                  </property>
              </bean>    
          </beans>
          4、在web.xml中進行配置
               <context-param>
                  <param-name>contextConfigLocation</param-name>
                  <param-value>/WEB-INF/beans-quarz.xml</param-value>
              </context-param>
              <listener>
                  <listener-class>
                      org.springframework.web.context.ContextLoaderListener
                  </listener-class>
              </listener>

          完成上面四項后,啟動服務器就執行定時任務了。

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 昌都县| 资溪县| 团风县| 前郭尔| 乌苏市| 吴旗县| 濉溪县| 博湖县| 海伦市| 双鸭山市| 宣恩县| 姚安县| 德保县| 安仁县| 磐安县| 黄大仙区| 澄江县| 洪雅县| 侯马市| 浦北县| 青浦区| 汕头市| 喀喇| 江都市| 利川市| 且末县| 天台县| 开平市| 江孜县| 天津市| 富阳市| 温州市| 博兴县| 临沧市| 文安县| 桂东县| 宜君县| 内乡县| 唐河县| 利津县| 北票市|