in src/main/java/com/aliyun/cloudops/acs/ecs/toolkit/CloudAssistant.java [224:242]
private Invocation waitForTaskStatus(String regionId, String invokeId, int timeout, Predicate<Invocation> predicate) throws InterruptedException {
AtomicReference<Invocation> result = new AtomicReference<>();
final CountDownLatch countDownLatch = new CountDownLatch(1);
this.scheduleTaskQuery(regionId, invokeId, invocation -> {
if (predicate.test(invocation)) {
result.set(invocation);
countDownLatch.countDown();
return true;
} else {
return false;
}
});
if (timeout > 0) {
countDownLatch.await(timeout, TimeUnit.SECONDS);
} else {
countDownLatch.await();
}
return result.get();
}