如何使用cacheApi在play框架中设置清理缓存超时?

时间:2017-10-21 22:18:20

标签: java scala caching playframework

我在我的播放应用程序中使用cacheApi,我想知道我是否可以暂停缓存吗?

我在方法cacheApi

中使用if the data is in cache bring from cache, if not, so go get it from the server with an api call对象

现在我希望每24小时清理一次缓存,以便能够从服务器中提取新数据。

我是如何完成这样的事情的?

2 个答案:

答案 0 :(得分:1)

我使用此代码配置超时:

CacheConfiguration<Long, String> cacheConfiguration = CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class,
        ResourcePoolsBuilder.heap(100)) 
    .withExpiry(Expirations.timeToLiveExpiration(Duration.of(20, TimeUnit.SECONDS))) 
    .build();

答案 1 :(得分:0)

Play Framework v2.5:使用CacheApi.set方法并传递所需的到期时间,以设置缓存值的离开时间(TTL)。

Play Framework v2.6:使用SyncCacheApi.setAsyncCacheApi.set。此外,您可以创建计时器并在一段时间后调用AsyncCacheApi.removeAll(但不清楚 - 您是否可以删除仅添加的值(比如说之前添加5分钟)?

默认过期时间是无限的 - 永远不会从缓存中删除!