Projet

Général

Profil

Development #26620

sources de données : possibilité de définir une durée de mise en cache

Ajouté par Frédéric Péters il y a plus de 5 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
21 septembre 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Certaines sources de données ont des contenus très stables, plutôt qu'avoir à systématiquement appeler passerelle, on pourrait garder le résultat en cache.


Fichiers

Révisions associées

Révision 9a57fd3d (diff)
Ajouté par Frédéric Péters il y a plus de 5 ans

misc: add cache duration option to named data sources (#26620)

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 5 ans

#2

Mis à jour par Thomas Noël il y a plus de 5 ans

Attention, le cache n'est pas multitenant ; soit ajouter le nom du tenant dans la clé, soit créer un adaptateur du genre de TenantCache dans hobo.multitenant.cache

#3

Mis à jour par Frédéric Péters il y a plus de 5 ans

Le cache est bien multitenant (cf wcs/cache.py, WcsTenantCache).

#4

Mis à jour par Thomas Noël il y a plus de 5 ans

  • Statut changé de Solution proposée à Solution validée

Pffff... désolé... fichue mémoire...

Je verrais bien un commentaire autour du cache.set, qui rappelle rapidement qu'il s'agit de constituer un cache "permanent", alors que celui du dessus est un cache juste lié à la requête.

#5

Mis à jour par Thomas Noël il y a plus de 5 ans

Je me dis quand même que ça va poser le classique problème de l'invalidation du cache

Sur un fichier CSV distant, l'envie sera de poser un cache d'une heure... mais alors il faudra attendre 1 heure lors de la mise à jour du fichier CSV :-/

Peut-être faudrait-il expliquer cela dans l'UI, et/ou y proposer un système d'invalidation du cache.

#6

Mis à jour par Frédéric Péters il y a plus de 5 ans

Oui j'avais pensé à un bouton "invalider" mais ce n'est pas évident, il faudrait préfixer la clé du cache par l'id de la source de données et pouvoir lister toutes les clés par préfixe (ce que ne permet pas l'API). (ou alors un bouton pour faire un .clear() global, mais ça concernera vraisemblablement les autres tenants aussi).

#7

Mis à jour par Thomas Noël il y a plus de 5 ans

  • Statut changé de Solution validée à En cours

Yep... pour moi tant qu'on n'a pas de système d'invalidation, il faut dans l'UI soit inciter à ne pas dépasser genre 15 minutes et/ou rappeler "clairement" l'impact de ce cache.

#8

Mis à jour par Frédéric Péters il y a plus de 5 ans

Je veux bien un ticket différent pour forcer l'invalidation.

+                hint=_('Caching data will improve performances but will keep changes '
+                       'from being visible immediately.  You should keep this duration '
+                       'reasonably short.'),
#9

Mis à jour par Thomas Noël il y a plus de 5 ans

  • Statut changé de Solution proposée à Solution validée

(ah, peut-être voulu, je ne connais pas les règles typos des english, mais y'a deux espaces devant " You should keep this ...")

#10

Mis à jour par Frédéric Péters il y a plus de 5 ans

C'est usuel de taper deux espaces mais de toute façon une fois rendu en HTML ça sera invisible.

(ce ticket est pour la prochaine version)

#11

Mis à jour par Thomas Noël il y a plus de 5 ans

Pour l'invalidation, #26688

#12

Mis à jour par Frédéric Péters il y a plus de 5 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 9a57fd3dab6e7fbef085c7efc15b62a5002b051d
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Sat Sep 22 11:24:43 2018 +0200

    misc: add cache duration option to named data sources (#26620)
#13

Mis à jour par Frédéric Péters il y a plus de 5 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF