Pourquoi les statistiques ne sont-elles pas mises à jour en temps réel ?

Salut, nous construisons une interface utilisateur autour de l’API Discourse et nous avons rencontré un comportement étrange concernant les statistiques qui ne se mettent pas à jour en temps réel à quelques endroits.

  • D’une part, lors de la récupération de /directory_items.json?period=all&order=likes_given, nous avons remarqué que si un utilisateur donne quelques likes, les statistiques ne sont pas mises à jour avant un certain temps.
  • L’autre endroit où nous avons remarqué cela est lors de la récupération des statistiques récapitulatives de l’utilisateur en récupérant /u/<user>/summary.json, les statistiques semblent ne pas être mises à jour correctement ou du moins pas en temps réel.

Nous utilisons l’image Docker de Bitnami pour exécuter Discourse, nous ne sommes pas sûrs si ce problème pourrait être lié à cette image particulière, ou s’il s’agit d’un comportement attendu de l’API Discourse elle-même.

L’image Docker utilise quelque chose appelé Sidekiq, que nous pensions être le coupable du problème. Nous avons essayé d’exécuter ce qui semblait être la tâche correcte (Jobs::DashboardStats) pour mettre à jour les statistiques, mais sans succès. Les statistiques ne se mettent pas à jour même après avoir déclenché les tâches planifiées. Y a-t-il une autre tâche liée à cela, ou ne cherchons-nous pas au bon endroit ?

Cordialement,
Manolo

Toutes les bonnes plateformes font la distinction entre les éléments qui doivent absolument être à jour et ceux qui peuvent probablement attendre et économiser des ressources.

Les éléments du répertoire semblent être mis à jour toutes les heures. Cela signifie qu’il est beaucoup moins cher d’afficher le même résultat à chaque utilisateur individuel plutôt que de le calculer à la demande chaque fois qu’un utilisateur tente d’y accéder.

Le code source est votre ami :

Et oui, vous pourriez être en mesure d’augmenter cette fréquence avec un simple plugin, mais soyez conscient de l’impact sur les ressources et les performances que vous pourriez avoir.

Soit, c’est ce que nous pensions être le problème, j’ai oublié de vérifier le code source car je ne m’attendais pas à ce qu’il s’y trouve, bien que cela ait parfaitement du sens !

Merci pour votre réponse rapide !