java spring @Scheduled 注解定时任务没反映不起作用

spring | 2019-09-13 10:02:39

java spring @Scheduled 注解定时任务没反映不起作用,我之前也配过,就是一模一样配的,就是不执行,输出和断点都没反映。
只不过我以前都写在service层的,所以类上有个@Service,但是我现在单独写一个类,也扫描包了,但是类上也要有个注解让spring扫描到这个类。
原来是这样子,我在类上面加个@Component就可以了,只有加了component,service,repository这种注解,spring才会去管理这个类。


1.首先就是头上要加task

<beans xmlns="http://www.springframework.org/schema/beans"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:context="http://www.springframework.org/schema/context"
             xmlns:tx="http://www.springframework.org/schema/tx"
             xmlns:mvc="http://www.springframework.org/schema/mvc"
             xmlns:task="http://www.springframework.org/schema/task"
             xsi:schemaLocation="http://www.springframework.org/schema/beans
                     http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
                     http://www.springframework.org/schema/context
                     http://www.springframework.org/schema/context/spring-context-4.3.xsd
                     http://www.springframework.org/schema/tx
                     http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
                     http://www.springframework.org/schema/mvc
                                         http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
                                         http://www.springframework.org/schema/task 
                                         http://www.springframework.org/schema/task/spring-task-4.1.xsd">

2.再就是要扫描你那个类所在的包

<context:component-scan base-package="com.task" />

3.然后要扫描定时任务的注解

<!-- 定时任务及线程池 -->
          <task:executor id="executor" pool-size="5"/>
          <task:scheduler id="scheduler" pool-size="10"/>
          <task:annotation-driven executor="executor" scheduler="scheduler"/>

4.最后类上和方法上加注解

@Component
@ZcyAutoLog(module="定时任务",tag="DeliveryTimeTask")
public class DeliveryTimeTask {
        
        @Scheduled(cron = "0/1 * * * * ? ") //每秒执行一次
        public void createDeliveryExpireMessage() {
                System.out.println("哈哈!!!");
                
        }
}



登录后即可回复 登录 | 注册
    
关注编程学问公众号