美文网首页
Spring中@Async注解

Spring中@Async注解

作者: yxuiang | 来源:发表于2018-10-27 21:05 被阅读0次

    项目中遇到了, Feign 调用微服务超时的问题,而调用的方法返回值为 void, 所以这种情况:如果非必要等待执行方法成功,则可以使用 spring 注解 @Async, 完美解决超时问题,从而程序可以正常执行

    异步与同步的区别

    同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。 异步调用则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕;而是继续执行下面的流程。

    @Async介绍

    在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。

    基于Java配置的启用方式

    @Service
    @EnableAsync
    public class SyncServiceImpl {...}
    

    代码中异步调用无返回值的使用方式

    @Service
    @EnableAsync
    public class SyncServiceImpl {
      @Async
      public void syncTest() {
        AtomicInteger page = new AtomicInteger(0);
        while (true) {
          if (page.page.get() == 50) {
              break;
          }
          logger.info("<sync> 第" + page + "页...");
          page.addAndGet(1);
        }
        logger.info("<sync> 异步结束");
      }
    }
    

    相关文章

      网友评论

          本文标题:Spring中@Async注解

          本文链接:https://www.haomeiwen.com/subject/fvqjtqtx.html