Решение для кэширования для управления внешними вызовами API с использованием Play Framework - PullRequest
0 голосов
/ 27 августа 2018

У меня есть некоторые внешние платные API, которые я использую для извлечения данных на основе некоторого идентификатора, и некоторые вызовы, которые я буду выполнять, вероятно, будут иметь тот же идентификатор, поэтому я ищу лучшую практику в игре для управления сценарием такого рода. с кешем. Также я хочу иметь возможность удалить кеш через 24 часа.

какие-нибудь рекомендации?

спасибо!

1 Ответ

0 голосов
/ 27 августа 2018

Документация Play дает (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")
}
...