我想為 JDA Discord Bot 創建一個(功能)測試系統。為此,我需要等到當前隊列中的所有消息都發送完畢(消息使用 發送RestAction#queue)并測試是否有該消息。有沒有辦法等待所有排隊的RestActions或者我應該指數級等待(例如等待0.5秒,等待1秒,等待2秒并測試消息是否存在)[注意] 我不想更改生產代碼中的queuetosubmit并將其發送到測試。
1 回答

一只斗牛犬
TA貢獻1784條經驗 獲得超2個贊
理想情況下,測試系統根本不應該與互聯網交互。但是,要回答您的問題,您可以使用提交返回的承諾而不是使用隊列來等待休息操作。
List<CompletableFuture<?>> list = new ArrayList<>();
list.add(action1.submit());
list.add(action2.submit());
...
CompletableFuture<Void> merged = CompletableFuture.allOf(list.toArray(new CompletableFuture[0]));
merged.whenComplete((v, error) -> {
? ? if (error != null) error.printStackTrace();
? ? else System.out.println("All futures completed successfully");
});
添加回答
舉報
0/150
提交
取消