spring执行定时任务

package timerTask;

import java.util.TimerTask;

public class SayHelloTask extends TimerTask {

  @Override
  public void run() {
    // TODO Auto-generated method stub
    System.out.println("测试TimerTask : Hello !!");
  }

} 

 

配置代码如下:javaTimer.xml

 

 
	
		
			
		
		
		
			5000
		
		
		
			1000
		
	
	
	
		
			
				
			
		
	

 

 

使用Java中的定时器比较简单,其提供的任务也比较简单, 下面来看看使用quartz来执行一个复杂的任务.


 

首先制定一个任务, 实现QuartzJobBean中的方法或者使用MethodInvokingJobDetailFactoryBean.

package timerTask;

import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;

public class SayHelloTaskUsingQuartz extends QuartzJobBean {

  @Override
  protected void executeInternal(JobExecutionContext context)
      throws JobExecutionException {
      System.out.println("使用Quartz 任务调度: Hello!!");
  }

} 

 

配置代码如下:quartzTimer.xml

 


		
			timerTask.SayHelloTaskUsingQuartz
		
	

	
 

	
		
			
		
		
			1000
		
		
			5000
		
				
	
	
	
		
			
		
		
			
			0 49 15 * * ?
		
	

	
		
			
			   
			    
			
		
	

 

附:cronExpression配置说明

 

字段   允许值   允许的特殊字符
  0-59   , - * /
  0-59   , - * /
小时   0-23   , - * /
日期   1-31   , - * ? / L W C
月份   1-12 或者 JAN-DEC   , - * /
星期   1-7 或者 SUN-SAT   , - * ? / L C #
年(可选)   留空, 1970-2099   , - * /
表达式   意义
"0 0 12 * * ?"   每天中午12点触发
"0 15 10 ? * *"   每天上午10:15触发
"0 15 10 * * ?"   每天上午10:15触发
"0 15 10 * * ? *"   每天上午10:15触发
"0 15 10 * * ? 2005"   2005年的每天上午10:15触发
"0 * 14 * * ?"   在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?"   在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?"   在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?"   在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED"   每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI"   周一至周五的上午10:15触发
"0 15 10 15 * ?"   每月15日上午10:15触发
"0 15 10 L * ?"   每月最后一日的上午10:15触发
"0 15 10 ? * 6L"   每月的最后一个星期五上午10:15触发 
"0 15 10 ? * 6L 2002-2005"   2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3"   每月的第三个星期五上午10:15触发

你可能感兴趣的:(Spring,Spring,quartz,Bean,XML,JDK)