2017-10-21 2 views
0

Ich verwende cacheApi in meiner Play-Anwendung, und ich frage mich, ob ich ein Timeout für die Cache-Reinigung haben kann?wie Cache-Zeitüberschreitung im Play-Framework mit CacheApi?

Im mit dem cacheApi Objekt in einem Verfahren, wie if the data is in cache bring from cache, if not, so go get it from the server with an api call

und jetzt will ich alle 24 Stunden um den Cache reinigen zu können neue Daten vom Server bringen.

Wie mache ich so etwas?

Antwort

1

habe ich diesen Code den Timeout zu konfigurieren:

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

Play-Framework-Version 2.5: Verwenden Sie CacheApi.set Methode und übergeben erforderlich Ablaufzeit für Cache-Wert einzustellen Zeit zu verlassen (TTL).

Play Framework v2.6: Verwenden Sie SyncCacheApi.set oder AsyncCacheApi.set. Auch können Sie Timer erstellen und AsyncCacheApi.removeAll nach einiger Zeit aufrufen (aber es ist nicht klar - ist es in Ordnung für Sie, nur hinzugefügte Werte zu entfernen (sagen wir hinzugefügt 5 Minuten zuvor)?

Standardmäßig ist Ablaufzeit unendlich - Es wird nie aus dem Cache entfernt!