亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Awaitility同步異步工具怎么使用

發布時間:2022-08-26 10:30:33 來源:億速云 閱讀:121 作者:iii 欄目:開發技術

本篇內容主要講解“Awaitility同步異步工具怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Awaitility同步異步工具怎么使用”吧!

    1. awaitility入門

    Maven:

    <dependency>
          <groupId>org.awaitility</groupId>
          <artifactId>awaitility</artifactId>
          <version>xxxx</version>
          <scope>test</scope>
    </dependency>

    1.1 靜態導入

    為了有效地使用Awaitility,建議從Awaitility框架中靜態地導入以下方法:

    org.awaitility.Awaitility.*

    在使用的時候需要搭配Java的時間相關的類以及Junit相關類:

    java.time.Duration.*

    java.util.concurrent.TimeUnit.*

    org.junit.Assert.*

    1.2 簡單例子

    例子1:

    await().until(newUserIsAdded());

    等待直到執行newUserIsAdded()返回true. 這個是沒有返回值的。

    例子2:

    await().atMost(5, SECONDS).until(newUserWasAdded());

    最多等待5秒,等待直到執行newUserIsAdded()返回true. 這個是沒有返回值的。

    例子3:

    await().until( userRepositorySize(), equalTo(1) );

    等待直到執行userRepositorySize()返回方法對應的值. 這個是有返回值

    2. awaitility在RocketMQ中的實戰

    在RocketMQ的test cases 中有一些使用了 Thread.sleep,接下來我們看看如何使用awaitility進行優化,減少測試用例的執行時間。以ControllerManagerTest測試用例為例子來解決,在代碼中可以看到有這樣的代碼:

    Awaitility同步異步工具怎么使用

    上圖框出來的代碼主要的作用是什么呢?等待Broker的Master過期,但是過期的時間我們根據設置的心跳的過期時間來預估時間。所以這里填寫的是6秒當然你也可以填寫10秒或者更長。

    解決之前的執行時間:

    Awaitility同步異步工具怎么使用

    使用awaitility對代碼進行改造重構:

    Awaitility同步異步工具怎么使用

    重構后的代碼,如上圖的紅線框出來部分。當然我這里還對其他的進行處理。

    使用awaitility重構后的執行時間:

    Awaitility同步異步工具怎么使用

    時間有明顯的下降。相比之前的下降了5秒左右。

    到此,相信大家對“Awaitility同步異步工具怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    武邑县| 纳雍县| 繁峙县| 石阡县| 济宁市| 乳山市| 贵定县| 阳新县| 民和| 霍城县| 永新县| 成武县| 彭阳县| 阳高县| 淮安市| 开化县| 长沙县| 蒙城县| 大余县| 新昌县| 曲阳县| 青海省| 益阳市| 池州市| 津南区| 大竹县| 靖安县| 静宁县| 漳浦县| 巩留县| 烟台市| 昌江| 明光市| 西和县| 安吉县| 筠连县| 铁岭县| 花垣县| 麟游县| 孟连| 新民市|