【问题标题】:Cache solution to manage external api calls using play framework使用 play framework 管理外部 api 调用的缓存解决方案
【发布时间】:2019-02-01 23:44:24
【问题描述】:

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

有什么建议吗?

谢谢!

【问题讨论】:

  • 当您说删除缓存时-您的意思是您希望缓存中的条目仅在我假设的 24 小时内有效?您可以通过使用 ehcache.xml 并设置 timeToLiveSeconds 为您的缓存全局配置它

标签: scala playframework playframework-2.0 playframework-2.2


【解决方案1】:

播放文档给出了(imo)关于做什么的明确指示: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")
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 2018-08-07
    • 2011-04-04
    • 2010-11-05
    相关资源
    最近更新 更多