zoukankan      html  css  js  c++  java
  • @Async 异步注解不起作用的坑

    背景

    今天在做项目的时候要在接口功能完成后要保存操作记录。为了防止保存操作记录功能异常影响主功能,于是打算将保存操作记录方法设置为异步调用。

    spring项目中使用异步很简单,只要在异步方法上方放一个@Async注解就可以了。但是今天发现一个坑。

    项目是tomcat启动的项目,不是springboot项目。如果要使用这个注解,那么需要在spring配置文件中配置一个异步执行器的线程池才能有用,如下

    <!--    异步-->
        <task:executor id="executor" pool-size="5"/>
        <task:annotation-driven executor="executor"/>

    但是,加了之后还是没用

    解决

    项目的service层是采用接口和接口实现类设计的,一开始我把@Async注解放在了接口实现类的saveProjectHistory()方法上,没有起作用。但是把@Async注解放在接口的saveProjectHistory()方法定义上就有用了。

    至于具体原因,暂时不知道。

  • 相关阅读:
    Leetcode字符串算法
    Leetcode基础算法结构-目录结构
    python日志-loguru日志管理
    FastApi
    python-hashlib
    excel数据操作
    yagmail自动发邮件
    python-sys
    集合
    文件操作
  • 原文地址:https://www.cnblogs.com/qingshan-tang/p/12937616.html
Copyright © 2011-2022 走看看