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

          spring + quartz實現web版定時任務

          Posted on 2012-06-04 16:25 yuhaibo736 閱讀(1479) 評論(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>

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

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


          網站導航:
           
          主站蜘蛛池模板: 广丰县| 景泰县| 汤阴县| 神池县| 托里县| 韶关市| 雅江县| 永靖县| 孝义市| 慈利县| 昆明市| 阿拉善盟| 崇州市| 历史| 祁连县| 铜鼓县| 平湖市| 清流县| 平顺县| 维西| 霍山县| 视频| 原平市| 玛纳斯县| 隆安县| 江门市| 准格尔旗| 巫山县| 杭锦后旗| 兰州市| 普宁市| 木兰县| 阿图什市| 福鼎市| 筠连县| 怀安县| 江津市| 陇川县| 北辰区| 江都市| 鄂州市|