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 南山隱士 閱讀(1400) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 陆丰市| 临夏市| 绥棱县| 石泉县| 河西区| 滨州市| 孝义市| 宜都市| 万州区| 平凉市| 锡林郭勒盟| 威宁| 克东县| 宜都市| 清镇市| 福贡县| 隆德县| 武功县| 林周县| 广宁县| 昌邑市| 嘉兴市| 临江市| 葫芦岛市| 明溪县| 富蕴县| 通江县| 合肥市| 泾源县| 桐城市| 邢台市| 济源市| 绥芬河市| 红河县| 灌云县| 崇州市| 历史| 太仆寺旗| 平阴县| 阳山县| 会泽县|