Можно ли использовать кеш okhttp совместно, т.е. иметь несколько клиентов, обращающихся к одному и тому же каталогу кеша, чтобы каждый из них не оставался своим.
В репродукции вики okhttp находим:
It is an error to have multiple caches accessing the same cache directory simultaneously
Я не ищу разные кеши для использования одной и той же папки, а скорее один общий кеш, который может обновляться более чем одним клиентом.
Простой пример (на Java):
Cache cache = new Cache(cacheDirectory, cacheSize);
client = new OkHttpClient.Builder().cache(cache).build();
client2 = new OkHttpClient.Builder().cache(cache).build();
Было бы это небезопасно? Если да, то есть ли альтернатива для этого или это вообще невозможно?
Ага, это совершенно безопасно. Было бы небезопасно иметь несколько экземпляров Cache
, которые совместно используют каталог, будь то в одном процессе или в нескольких.
Если это правильно, будет ли безопасно хранить объект Cache
как синглтон и использовать его для нескольких клиентов OkHttp одновременно?
Да, вы определенно хотите синглтон
Привет, Джесси, если я правильно вас понял, создание нескольких клиентов OkHttp должно быть безопасным, если они используют один и тот же объект
Cache
. Это правильно? Будет ли общий объектCache
следить за тем, чтобы клиенты не пытались одновременно производить запись в один и тот же кеш?