Я хотел бы реализовать цикл async while в Java, используя RxJava.RxJava async while loop
Более конкретно, вот мой не Асинхр код Java:
for (String dataCenter : dataCenters) {
final Set<Server> serversInDataCenter = getServersInDataCenterSync(dataCenter);
if (!CollectionUtils.isEmpty(serversInDataCenter)) {
final Server available = findOneWithSlots(serversInDataCenter);
if (available != null) {
return available;
}
}
// if no available server found for current dataCenter, try next
}
return null;
Что выше код делает то, что находит доступный сервер из центра обработки данных.
С 90% случаев в первом датацентре будет установлен сервер, который будет отмечен, я не хочу заранее загружать все серверы для всех центров обработки данных.
Теперь, представьте, что метод Set<Server> getServersInDataCenterSync(String dataCenter)
изменен на асинхронный, и вместо этого требуется обратный вызов: void getServersInDataCenter(String dataCenter, AsyncResultHandler<Set<Server>> handler)
. Это также делает другую вещь