zoukankan      html  css  js  c++  java
  • Spring 定时执行任务

         好不容易写了半天的文章竟然由于断网而丢失了,并未自动保存到草稿箱。只能简单的贴贴代码了。

         

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:task="http://www.springframework.org/schema/task"
     xmlns:util="http://www.springframework.org/schema/util"
     xmlns:context="http://www.springframework.org/schema/context"
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
            http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">  
        
         <context:annotation-config />
        <!-- spring扫描注解的配置    -->
        <context:component-scan base-package="com.dong.schedule" />
     	
     	<!--此处如果不配置的话,导致只有一个线程执行任务。  -->
        <task:annotation-driven executor="myExecutor" scheduler="myScheduler"/>
    	<task:executor id="myExecutor" pool-size="5"/>
    	<task:scheduler id="myScheduler" pool-size="10"/>
    </beans>	
    

      

    package com.dong.schedule;
    
    import java.util.Date;
    
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;
    
    @Component
    public class ScheduleTask {
    	
    	 @Scheduled(cron="*/5 * * * * ?")
    	    public void demoServiceMethod()
    	    {
    	        System.out.println("ScheduleTask   "+Thread.currentThread()+"   Method executed at every 5 seconds. Current time is :: "+ new Date());
    	    }
    
    	 @Scheduled(cron="*/3 * * * * ?")
    	    public void sayHi()
    	    {
    	        System.out.println("ScheduleTask   "+Thread.currentThread()+"   Method executed at every 3 seconds. Current time is :: "+ new Date());
    	    }
    }
    

      

    package com.dong.schedule;
    
    import java.util.Date;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
    import org.springframework.scheduling.support.CronTrigger;
    import org.springframework.stereotype.Component;
    
    
    /***
     * 代码中动态设置cron表达式的方式。
     */
    @Component
    public class MyTask {
    	@Autowired
    	private ThreadPoolTaskScheduler myScheduler;
    	
    	public void run(){
    		//此处可以动态设置
    		myScheduler.schedule(new MySchedulerTask(), new CronTrigger("*/2 * * * * ?"));
    	}
    	
    	private class MySchedulerTask implements Runnable{
    
    		@Override
    		public void run() {
    			// TODO Auto-generated method stub
    			 System.out.println("MyTask"+Thread.currentThread()+"   Method executed at every 2 seconds. Current time is :: "+ new Date());
    		}
    		
    	}
    	
    	
    	
    }
    

      

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Main {
    	public static void main(String[] args) {  
            ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");  
            MyTask myTask = (MyTask) context.getBean("myTask");
            myTask.run();
        }  
    }
    

      参考的资料 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html

      http://howtodoinjava.com/spring/spring-core/4-ways-to-schedule-tasks-in-spring-3-scheduled-example/

      http://blog.csdn.net/lmj623565791/article/details/27109467

  • 相关阅读:
    《构建之法》前三章读后感--软件工程
    复利计算--web版--总结--软件工程
    利率计算v2.0--web版--软件工程
    <更新日期03-31-2016> 复利计算5.0 <已改进>
    0302随笔
    有限自动机的构造与识别
    评论
    C语言文法
    词法分析 after Coding
    词法分析
  • 原文地址:https://www.cnblogs.com/dongqiSilent/p/5170324.html
Copyright © 2011-2022 走看看