Вопрос для интервью с потоковым кэшем
Вам предоставляется API, который возвращает текущую температуру, измеренную в разных городах. API предоставляет два способа запросить ее:
- Медленный и дорогостоящий
fetch
вызов, который возвращает текущие температуры для всех отслеживаемых городов. - Более быстрый и инкрементный
subscribe
метод, который возвращает обновления только при изменении температуры в городе.
Ваша задача - создать производительный и надежный кэш поверх этого API, который позволяет потребителям get
определять текущую температуру для любого отслеживаемого города без асинхронного сетевого вызова, поддерживая карту городов и их текущую температуру актуальными в фоновом режиме.
Цель кэша - всегда возвращать самое последнее значение, предоставленное API.
Чтобы проверить ваше решение, вы можете запустить cargo test
, который выполняет простой (не исчерпывающий) тест для вашей реализации. Не стесняйтесь добавлять дополнительные тесты, если считаете, что важные случаи не охвачены. Пожалуйста, постарайтесь не использовать какие-либо дополнительные ящики в качестве зависимостей.
Чтобы отправить решение, откройте PR, как вы обычно это делаете.