<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 一、概述 平臺默認內置了異步線程機制; >[danger] 注意幾點: > @Async注解的方法上再使用@Transaction注解是無效的; > @Async注解的方法不能是靜態方法; > 建議@Async注解的方法獨立的寫在由@Component注解的類中,由它來調用設定事務的Service層,然后業務層再調用它; ## 二、用法 默認的,平臺提供的異步線程池為`rayAsynTaskExecutor`; 舉例: ``` @Async("rayAsynTaskExecutor") public Future<Long> refreshAllReferencedStaff(long roleId) throws InterruptedException { List<SysStaff> staffList = SysRoleDao.getSysStaffListOfSpecRole(roleId); for (SysStaff staff : staffList) { SysStaffSupplement supplement = sysStaffSupplementDao.findByStaffId(staff.getStaffId()); if (supplement == null) { supplement = new SysStaffSupplement(); supplement.setStaffId(staff.getStaffId()); } supplement.setAssociatedRoleNames(ArrayUtil.getStringWithSplit(sysStaffRoleDao.getSysStaffRoleNamesAssociatedBySpecStaff(staff.getStaffId()), "/")); sysStaffSupplementDao.save(supplement); } return new AsyncResult<>(Long.valueOf(staffList.size())); } ``` >[danger] > 1、我們可以定義多個線程池,然后指定異步任務使用的線程池,但平臺綜合考慮,提供了默認的`rayAsynTaskExecutor`線程池; >2、如果線程池配置的線程數小于當前進池的任務數,那么默認的會導致TaskRejectedException異常,取決于線程池配置的拒絕策略; * AbortPolicy策略:默認策略,如果線程池隊列滿了丟掉這個任務并且拋出RejectedExecutionException異常。 * DiscardPolicy策略:如果線程池隊列滿了,會直接丟掉這個任務并且不會有任何異常。 * DiscardOldestPolicy策略:如果隊列滿了,會將最早進入隊列的任務刪掉騰出空間,再嘗試加入隊列。 * CallerRunsPolicy策略:如果添加到線程池失敗,那么主線程會自己去執行該任務,不會等待線程池中的線程去執行。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看