Мне нужно использовать memcached Java API в моем коде Scala/Akka. Этот API дает вам как синхронные, так и асинхронные методы. Асинхронные возвращают java.util.concurrent.Future. Здесь был вопрос о работе с Java Futures в Scala здесь Как мне поместить java.util.concurrent.Future в будущее Akka?. Однако в моем случае у меня есть два варианта:
-
Использование синхронного API и кода блокировки в будущем и блокировки отметок:
Future { blocking { cache.get(key) //synchronous blocking call } }
-
Использование асинхронного Java API и опрос каждого n мс на Java Future, чтобы проверить, завершено ли будущее (как описано в одном из ответов выше в связанном вопросе выше).
Какой из них лучше? Я склоняюсь к первому варианту, потому что опрос может резко повлиять на время отклика. Не следует ли блокировать blocking { }
блокировать весь пул?