Scala 使用play framework管理外部api调用的缓存解决方案

Scala 使用play framework管理外部api调用的缓存解决方案,scala,playframework,playframework-2.0,playframework-2.2,Scala,Playframework,Playframework 2.0,Playframework 2.2,我有一些外部付费api,用于根据某个id检索数据,我将执行的一些调用可能具有相同的id,因此我正在寻找使用缓存管理此类场景的最佳实践。 此外,我希望能够删除24小时后的缓存 有什么建议吗 谢谢 播放文档为(imo)提供了关于如何操作的明确指示: 其要点是: 在需要时插入缓存实例: 使用实例缓存内容: 因此,基本上: import play.api.cache._ import play.api.mvc._ import javax.inject.Inject class Applicati

我有一些外部付费api,用于根据某个id检索数据,我将执行的一些调用可能具有相同的id,因此我正在寻找使用缓存管理此类场景的最佳实践。 此外,我希望能够删除24小时后的缓存

有什么建议吗

谢谢

播放文档为(imo)提供了关于如何操作的明确指示:

其要点是:

  • 在需要时插入缓存实例:
  • 使用实例缓存内容:
因此,基本上:

import play.api.cache._
import play.api.mvc._
import javax.inject.Inject

class Application @Inject() (cache: AsyncCacheApi, cc:ControllerComponents) extends AbstractController(cc) {

[...]
val result: Future[Done] = cache.set("item.key", connectedUser, 24.hours)
val futureMaybeUser: Future[Option[User]] = cache.get[User]("item.key")
}

当你说删除缓存-你的意思是你希望缓存中的条目在24小时内有效吗?通过使用
ehcache.xml
并设置
timeToLiveSeconds