Perchè le statistiche non sono aggiornate in tempo reale?

Ciao, stiamo creando un front-end attorno all’API di Discourse e abbiamo riscontrato un comportamento strano riguardo alle statistiche che non si aggiornano in tempo reale in un paio di posti.

  • Per prima cosa, quando si recuperano /directory_items.json?period=all&order=likes_given, abbiamo notato che se un utente mette un paio di “mi piace”, le statistiche non vengono aggiornate fino a quando non passa un bel po’ di tempo.
  • L’altro posto in cui abbiamo notato questo è quando si recuperano le statistiche riassuntive dell’utente recuperando /u/<user>/summary.json, le statistiche sembrano non essere aggiornate correttamente o almeno non in tempo reale.

Stiamo utilizzando l’immagine docker di bitnami per eseguire Discourse, non siamo sicuri se questo problema possa essere correlato a questa particolare immagine, o se questo sia un comportamento previsto dell’API di Discourse stessa.

L’immagine docker utilizza qualcosa chiamato sidekiq, che pensavamo potesse essere il colpevole del problema. Abbiamo provato a eseguire quella che sembrava l’attività corretta (Jobs::DashboardStats) per aggiornare le statistiche, ma senza successo. Le statistiche non si aggiornano nemmeno dopo aver attivato le attività pianificate. C’è qualche altra attività correlata a questo, o non stiamo guardando nel posto giusto?

Saluti,
Manolo

Tutte le buone piattaforme distinguono tra le cose che devono assolutamente essere aggiornate e quelle che possono probabilmente aspettare e risparmiare risorse.

Directory Items sembra aggiornarsi ogni ora. Ciò significa che è molto più economico mostrare lo stesso risultato a ogni singolo utente piuttosto che calcolarlo su richiesta ogni volta che un utente tenta di accedervi.

Il codice sorgente è tuo amico:

E sì, potresti essere in grado di aumentare quella frequenza con un semplice plugin, ma fai attenzione all’impatto sulle risorse e sulle prestazioni che potresti avere.

4 Mi Piace

Va bene, questo era ciò che pensavamo fosse il problema, ho dimenticato di controllare il codice sorgente poiché non mi aspettavo che fosse lì, anche se ha perfettamente senso!

Grazie per la rapida risposta!

1 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.