如何在okhttp中使用共享缓存

时间:2018-05-02 11:03:39

标签: java okhttp

是否可以以共享方式使用okhttp缓存,即:让多个客户端访问同一缓存目录,以避免每个缓存目录都保留自己的缓存目录。

在我们找到的repices of the okhttp wiki中:

  

让多个缓存同时访问同一个缓存目录是错误的

我不是在寻找使用相同文件夹的不同缓存,而是寻找可以由多个客户端更新的单个共享缓存。

一个简单的例子是(在Java中)运行:

    Cache cache = new Cache(cacheDirectory, cacheSize);

    client  = new OkHttpClient.Builder().cache(cache).build();
    client2 = new OkHttpClient.Builder().cache(cache).build();

这样做会不安全吗?如果是这样,是否有替代方案可以实现这一点,或者根本不可能实现这一目标?

1 个答案:

答案 0 :(得分:2)

是的,那是完全安全的。拥有共享目录的多个Cache实例是不安全的,无论是在一个进程中还是在多个进程中。