代码之家  ›  专栏  ›  技术社区  ›  JohnBigs

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

  •  0
  • JohnBigs  · 技术社区  · 6 年前

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

    有什么建议吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   C4stor    6 年前

    https://www.playframework.com/documentation/2.6.x/ScalaCache

    其要点是:

    • 使用实例缓存内容:

    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")
    }