美文网首页
定时任务的配置

定时任务的配置

作者: 菊地尤里 | 来源:发表于2020-06-24 16:13 被阅读0次

    第一步:spring-context.xml的schema

    xmlns:task="http://www.springframework.org/schema/task"  
      xsi:schemaLocation="
    http://www.springframework.org/schema/task  
     http://www.springframework.org/schema/task/spring-task-4.1.xsd"
    

    第二步:spring-context.xml配置

    <context:component-scan base-package="com.xxx" />  //确保扫描了该包   
    
    <task:executor id="executor" pool-size="10"/>  //执行线程池配置 
    <task:scheduler id="scheduler" pool-size="10"/>  //调度线程池配置
    <task:annotation-driven scheduler="scheduler" executor="executor" 
    proxy-target-class="true"/> 开启定时任务
    

    第三步:task加注解

    @Service
    @Lazy(false)   //这样这个类就不会延迟加载了
    public class xxxxTask {
    
        @Async   //异步执行
        @Scheduled(cron = "0 0/1 * * * ?")  //每一分钟执行一次
        public void dataSync(){
        }
    

    @fixedDelay 间隔时间是根据上次的任务结束的时候开始计时的。比如一个方法上设置了fixedDelay=5*1000,那么当该方法某一次执行结束后,开始计算时间,当时间达到5秒,就开始再次执行该方法。

    @fixedRate 间隔时间是根据上次任务开始的时候计时的。比如当方法上设置了fiexdRate=5*1000,该执行该方法所花的时间是2秒,那么3秒后就会再次执行该方法。

    @Lazy指定该Bean是否预初始化。主要用于修饰Spring Bean类,用于指定该Bean的预初始化行为,使用该Annotation时可以指定一个boolean型的value属性,该属性决定是否要预初始化该Bean

    lazy=false代表不延时,如果对象A中还有对象B的引用,会在A的xml映射文件中配置b的对象引用,多对一或一对多,不延时代表查询出对象A的时候,会把B对象也查询出来放到A对象的引用中,A对象中的B对象是有值的。

    lazy=true代表延时,查询A对象时,不会把B对象也查询出来,只会在用到A对象中B对象时才会去查询,默认是true,一般需要优化效率的时候会用到

    相关文章

      网友评论

          本文标题:定时任务的配置

          本文链接:https://www.haomeiwen.com/subject/olgrfktx.html