我们有一些用 Spring @async annotation 注释的代码- 这意味着在新线程中运行该方法。理论上 - 这个方法应该在启动时运行。
实际上 - 它根本没有运行。
package ...
...
import org.springframework.scheduling.annotation.Async;
...
@Component
public class MyClass {
...
@Async
public void mymethod() {
...
}
}
我正在尝试考虑所有可能的原因:
- 类不在 Spring 组件扫描路径中(本例中未选中 - 已选中)
我的问题是:Spring @async 注释可能无法触发的原因是什么?
(如果尝试异步执行但失败,我是否可以登录一个类?)
最佳答案
这些是 @Async
对我不起作用的情况
@EnableAsync
缺失@Async
方法未公开@Async
注解的方法是从同一类的另一个方法调用的。可能绕过异步代理代码并仅调用普通方法。
关于java - Spring @async 注释可能无法触发的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38765474/