提问人:mazi 提问时间:11/4/2023 更新时间:11/5/2023 访问量:28
Spring @Async 方法被执行但被阻塞
Spring @Async method gets executed but is blocking
问:
我在我的配置中启用了异步:
@Configuration
@EnableAsync
public class ApplicationConfiguration {
//additional configurations
}
我有一个测试类,它有一个@Async测试方法,需要几秒钟:
@Async
public static void asyncTest() {
System.out.println("* * * * * * ASYNC TEST 1");
new BigInteger(9999, 5, new Random());
System.out.println("* * * * * * ASYNC TEST 2");
}
在调用终结点时,我调用此方法。该方法被执行,但阻止了所有内容。 我的目标是立即响应客户端并异步执行一个持久的方法,但即使使用我的测试设置,我也无法让它工作。感谢您的任何提示! 带有 maven 和 servlet-api 3.0.1 的 Spring 1.5.1 servlet。
答:
1赞
vladtkachuk
11/4/2023
#1
注释的方法不得,必须放置在 Spring(或 @Service等)中。@Async
static
@Component
这个问题的答案中有更多细节: @Async Spring 注解不起作用
0赞
mazi
11/5/2023
#2
用公认的答案解决了它,并且:在通过@Autowired注入我的测试类(其中包含 asyncTest 方法)后,实例仍然是 null。这是因为我使用了 Servlet,并且还必须@Autowire Servlet。 这有帮助: servlet 中的自动布线
评论