Projet

Général

Profil

Development #37563

Le cache des sources de donnée devrait être rafraîchi plus souvent que sa période de stockage

Ajouté par Benjamin Dauvergne il y a plus de 4 ans. Mis à jour il y a 3 mois.

Statut:
Nouveau
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
09 novembre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Lié à la demande #37127, mais c'est une idée un peu générale quand on fait du cache; pour pallier à des absences temporaires du système distant il faudrait que le cache soit rafraîchi assez régulièrement même si la durée de celui-ci est longue.

Pour l'exemple de la demande #37127, on a une durée de deux jours, mais il serait plus judicieux de permettre au moins un appel toutes les heures; en fait il faudrait que le cache ait une durée quasi illimitée qu'on ne spécifierait pas (disons quelques jours) mais qu'on interprète plutôt la durée du cache par une durée minimum entre les rafraîchissements forcées, si ceux-ci échoue on renvoie alors la donnée en cache. En pseudocode :

   get_datasource_value_with_cache(ds):
       refresh_time = ...
       storage_time = ...
       try:
            value, last_time = get_cache(ds)
            if now - last_time < refresh_time:
                return value
       except CacheNotFound:
            value = None
            last_time = now
       try:
            value = get_datasource_value(ds)
       except DatasourceError as e:
            if value is not Now:
               set_cache(ds, (value, last_time + 5 minutes), expire=now + storage_time)  # prevent hammering ds when it becomes down and refresh duration has expired
               return value
            raise e  # cache is empty, raise initial error
       else:
            set_cache(ds, (value, now), expire=now + storage_time)
            return value

Historique

#1

Mis à jour par Frédéric Péters il y a 3 mois

  • Tracker changé de Bug à Development
  • Sujet changé de Le cache des sources de donnée devraient rafrâichi plus souvent que sa période de stockage à Le cache des sources de donnée devrait être rafraîchi plus souvent que sa période de stockage

Formats disponibles : Atom PDF