使用quartz调度的一个java例子

1, 加入 jar

2, 在web.xml 中

   <context-param>
    <param-name>contextConfigLocation</param-name>
  <param-value>classpath:webpointContext.xml,
               classpath:spring-quartz.xml
  </param-value>
</context-param>

3, class 路径下建立spring-quartz.xml,内容如下



<!-- 一个调度任务 -->
<bean name="reportTask" 
        class="org.springframework.scheduling.quartz.JobDetailBean">  
        <!-- 被调度的类 -->
        <property name="jobClass" value="com.tydic.metadata.util.CsaNoticeJob" />  
    </bean>  
 
    <!-- 触发器 -->  
    <bean id="cronTrigger" 
        class="org.springframework.scheduling.quartz.CronTriggerBean">  
 
        <!-- 指向我们的任务 -->  
        <property name="jobDetail" ref="reportTask" />  
 
        <!--  每天每10分钟运行一次 -->  
        <property name="cronExpression" value="0 0/10 * * * ?" />  
    </bean>  
 
 
    <!-- 调度器  -->  
    <bean  
        class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
        <property name="triggers">  
            <list>  
                <!--  触发器列表 -->  
                <ref bean="cronTrigger" />  
            </list>  
        </property>  
        
    </bean> 



4,写个java类,

public class CsaNoticeJob  implements Job  {

private static final long serialVersionUID = 1L;

  ApplicationContext ctx= new ClassPathXmlApplicationContext("webpointContext.xml");

     
private SqlMapClient sqlMapClient ;

//必须实现的方法
public void execute(JobExecutionContext arg0)  throws JobExecutionException {

  perform(); 
}

//  自己定义的具体方法,执行调度任务
  public  void perform(){   
         try {
          sqlMapClient= (SqlMapClient) ctx.getBean("sqlMapClient");
          if(sqlMapClient==null){
           System.err.println("sqlMapClient 是 null ");
          }
         int i=sqlMapClient.update("updateStateNoticeKF");
     
  } catch (Exception e) {
   // TODO Auto-generated catch block
      e.printStackTrace();
     
  }
       
          
      }

}

猜你喜欢

转载自pengfeicao521.iteye.com/blog/1546529
今日推荐