posts - 13,comments - 19,trackbacks - 0
          現在想要獲得在特定時間或者指定時間執行相應功能
          有兩種做法
          在applicationContext.xml中寫入如下Bean
          <bean id="repeatingTrigger"
             class="org.springframework.scheduling.timer.ScheduledTimerTask">
             <!--啟動一秒后執行 -->
             <property name="delay">
              <value>1000</value>
             </property>
             <!--每隔一小時執行一次 -->
             <property name="period">
              <value>3600000</value>
             </property>
             <!--注入要監控的javaBean -->
             <property name="timerTask">
              <ref bean="task" />
             </property>
             <!--類型是否為fixedRate型,默認為fixedDelay-->
             <property name="fixedRate">
              <value>true</value>
             </property>


          </bean>
          <bean id="scheduler"
             class="org.springframework.scheduling.timer.TimerFactoryBean">
             <property name="scheduledTimerTasks">
              <list>
               <ref bean="repeatingTrigger" />
              </list>
             </property>
          </bean>

          <bean id="task" class="com.css.wam.portlet.SampleTask">
             <property name="workService">
              <ref bean="workService" />
             </property>
             <property name="work">
              <ref bean="work" />
             </property>
          </bean>

          然后寫SampleTask類,如下:

           

          package com.css.wam.portlet;

           

          import java.util.ArrayList;
          import java.util.Calendar;
          import java.util.Iterator;
          import java.util.List;
          import java.util.TimerTask;

           

           

          import javax.servlet.ServletContext; 字串2

          import org.apache.jetspeed.security.SecurityException; 字串9

          import com.css.wam.service.WorkService; 字串1

          @SuppressWarnings("unused")
          class SampleTask extends TimerTask{    字串2

              private static final int C_SCHEDULE_HOUR = 23;//設置指定時間
              private WorkService workService;
              private List users;
              private List teams;
              private WorkPortlet work;
             
              public void setWorkService(WorkService workService) {
             this.workService = workService;
          } 字串7

          public void setWork(WorkPortlet work) {
             this.work = work;
          } 字串4

              public SampleTask(){
              }
             
              @SuppressWarnings("unchecked")
          public void run() {
             
                  Calendar cal = Calendar.getInstance();
                  try {
                    users = work.getUsers();
                    teams = new ArrayList();
                 for(Iterator it = users.iterator(); it.hasNext();)
                 {
                  String teamname = work.getGroupsByUser((String)it.next());
                  teams.add(teamname);
                 }
                      //查看當前時間與指定是否一致,一致則執行任務
                       if (C_SCHEDULE_HOUR == cal.get(Calendar.HOUR_OF_DAY) ) 字串6
                           workService.autoWorkOff(users, teams);    字串8

                  } catch (SecurityException e) {
               e.printStackTrace();
              }
                }
          }

          posted on 2008-06-25 17:14 南山隱士 閱讀(1399) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 同江市| 马尔康县| 兴海县| 凤庆县| 常德市| 南岸区| 土默特左旗| 化德县| 沙湾县| 临澧县| 深水埗区| 崇义县| 嘉鱼县| 松潘县| 交城县| 景德镇市| 六盘水市| 英超| 东丽区| 江华| 阿克苏市| 托克逊县| 陇西县| 尼木县| 彭山县| 阜阳市| 山西省| 高台县| 兰考县| 荆州市| 丰县| 井研县| 东乌珠穆沁旗| 大洼县| 海南省| 孟村| 桐庐县| 巫山县| 澎湖县| 廊坊市| 金乡县|