java - Spring @async 注释可能无法触发的原因是什么?

标签 java spring asynchronous annotations

我们有一些用 Spring @async annotation 注释的代码- 这意味着在新线程中运行该方法。理论上 - 这个方法应该在启动时运行。

实际上 - 它根本没有运行。

package ...
...
import org.springframework.scheduling.annotation.Async;
...
@Component
public class MyClass {
...
    @Async
    public void mymethod() {
    ...
    }
}

我正在尝试考虑所有可能的原因:

  • 类不在 Spring 组件扫描路径中(本例中未选中 - 已选中)

我的问题是:Spring @async 注释可能无法触发的原因是什么?

(如果尝试异步执行但失败,我是否可以登录一个类?)

最佳答案

这些是 @Async 对我不起作用的情况

  1. @EnableAsync 缺失
  2. @Async 方法未公开
  3. @Async 注解的方法是从同一类的另一个方法调用的。可能绕过异步代理代码并仅调用普通方法。

关于java - Spring @async 注释可能无法触发的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38765474/

相关文章:

java - 如何在JPA中返回交易结果

java - 如何使用 Spring @Configuration 而不是 XML 配置检索 JNDI

flutter - Dart Future。等待多个 future 并获得不同类型的结果

java - 各种线程

java - 示例 SyncService 中 sSyncAdapterLock 的用途是什么?

java - Spring ThreadPoolTask​​Executor 只运行一个线程

java - Spring - 如何获取列表框jsp中的对象列表

java - 为什么在使用异步记录器时使用 Log4J2 写入大量日志条目速度较慢

GWT (2.4.0) + XSRF

java - 垃圾收集似乎在 Java 中不起作用