java 在spring Boot 中调用带有@Async注解的方法很长时间后调用

46scxncf  于 2023-06-04  发布在  Java
关注(0)|答案(1)|浏览(204)

我在项目中使用java-11spring Boot 2.3.8.RELEASE
在我的项目中,我在调用**@async方法时遇到了问题。
当我调用
@async**方法时,有时它会在几个小时后调用。在大多数情况下,它会立即执行,但有时需要几个小时才能调用该方法。
下面是我的代码

public void methodA(){
     logger.info("going to call async method");
     this.methodB();
     logger.info("async method execution completed");
}

@Async
public void methodB(){
      logger.info("inside async method");
}

当我检查上面的日志时,我得到了下面的o/p

2023-05-29 03:36:36.893  INFO 3382750 --- [http-nio-auto-1-exec-236] com.demo.web.service      : going to call async method

2023-05-29 04:53:08.893  INFO 3382750 --- [http-nio-auto-1-exec-236] com.demo.web.service      : inside async method

2023-05-29 04:53:08.893  INFO 3382750 --- [http-nio-auto-1-exec-236] com.demo.web.service      : async method execution completed

我不明白为什么会这样有时它像预期的那样工作,有时它像这样工作
任何帮助都很感激
请引导。谢谢

shyt4zoc

shyt4zoc1#

.在大多数情况下,它会立即执行,但有时需要几个小时才能调用该方法。Blockquote
线程问题。如果可用线程正忙碌着处理其他任务,您可能必须等待几个小时。
1.在同一个类中调用async方法-不会起作用。您可能会看到详细信息https://www.baeldung.com/spring-async
1.您应该创建一个ThreadPool,其大小应该大于1,您可能会看到详细信息https://spring.io/guides/gs/async-method/

相关问题