/ / Play Framework cache Rimuovi elementi corrispondenti a regex - regex, scala, playframework, ehcache, reactivemongo

Play Framework cache Rimuovi elementi corrispondenti a regex - regex, scala, playframework, ehcache, reactivemongo

Mi stavo chiedendo se esiste un modo per eliminare elementi dalla cache di riproduzione usando un'espressione regolare.

Sto usando il gioco 2.2.x e sto memorizzando gli elementi nella cache seguendo questo schema:

collectionName.identifier

C'è un modo per far scadere il caché usando un'espressione regolare per abbinare la chiave, come:

collectionName.[a-zA-Z0-9]+

La ragione per cui voglio farlo è che a volte aggiornerò elementi in db che corrispondono ad alcuni campi, e non so davvero quali elementi sono stati aggiornati.

Se c'è un modo in ReactiveMongo per ottenere gli identificatori di oggetto aggiornati, anche questo mi aiuterebbe.

Grazie per qualsiasi aiuto.

risposte:

2 per risposta № 1

La cache di Play utilizza Ehcache in basso. Dovrai lavorare direttamente con Ehcache.

  1. Accedi al sottostante Ehcache oggetto usando app.plugin[EhCachePlugin].cache (vedi il fonte di plugin).

  2. Quindi chiama il Ehcache oggetto "s getKeys metodo per ottenere l'elenco delle chiavi di immissione della cache.

  3. Quindi abbina le chiavi e rimuovi le voci che corrispondono alla tua espressione regolare.

A proposito, sarebbe meglio se aggiorni o rimuovi gli elementi dalla cache quando aggiorni il database.