<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 一、概述 業務系統中,有時候需要產生一些異步任務,在**JobServer**中來消費執行,協作完成異步運行邏輯; 平臺為了通用處理,提供了一套通用的機制來解決異步任務的生成和消費執行; ## 二、方案 ### **1. 定制項目的待辦類型** 參考《定制異步執行事件類型》部分; [項目實戰/后端開發/平臺基礎設施/定制待定常量](../%E5%B9%B3%E5%8F%B0%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD/%E5%AE%9A%E5%88%B6%E5%BE%85%E5%AE%9A%E5%B8%B8%E9%87%8F.md); ### **2. 產生特定的異步待辦列表,參考下面的示范代碼;** ``` @Autowired private AsynTodoGenerator asynTodoGenerator; ``` ``` asynTodoGenerator.registerTodo(RayiotPromisedAsynExecuteType.addWhiteNumber, UniframeworkString.instance(asynTodoGenerator.splitChar).append(cardId).append(cardNumber).toString(), UniframeworkString.instance(asynTodoGenerator.splitChar).append("卡片Id").append("待添加白名單號碼").toString()); ``` >[danger] 這里,產生了執行的參數,后面執行的時候,就是依據這里產生待辦任務時候傳入的參數來進行解析的; ### **3. 依據待辦列表,執行待辦業務,參考下面的示范代碼;** 針對每種RayiotPromisedAsynExecuteType 類型的不同,定制自己的實現類; ``` @Component public class Handler1 implements AsynToDoHandler { @Override @Transactional public void handle(SysAsynTodo executeTypeToDo, AsynTodoExecutor asynTodoExecutor) { } @Override public long asynToDoExecuteType() { return 2; } } ``` >[danger] 注意: > 1、需定義為bean,且實現AsynToDoHandler接口; > 2、handle需標注事務@Transactional; > 3、每次處理一個待辦項,如果需要處理多個,那么,可以自行積累多個任務一起處理; #### 代碼示范: ``` @Component public class ActivateCardHandler implements AsynToDoHandler { @Autowired private CardInfoDao cardInfoDao; @Override @Transactional public void handle(SysAsynTodo executeTypeToDo, AsynTodoExecutor asynTodoExecutor) throws Exception { long cardId = asynTodoExecutor.getExecuteParameterLong(todoActivateCard, 0); CardInfo cardinfo = cardInfoDao.findById(cardId).get(); ApiFacade.activateCard(cardinfo); } @Override public long asynToDoExecuteType() { return RayiotPromisedAsynExecuteType.activateCard; } } ```
                  <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>

                              哎呀哎呀视频在线观看