Trois demandes utilisateur, plus une adaptation rendue nécessaire par la première. - Ordre inversé : descendant avant montant. - Rafraîchissement porté de 60 s à 5 s. Il fallait le faire sur les DEUX couches locales : l'intervalle client seul aurait relu la même entrée de cache serveur douze fois. Le cache cloud reste à 5 min, ses métriques n'évoluant que par tranches de 5 min. - Le graphe est rendu dès la première mesure : vide plutôt qu'absent, ce qui évite un saut de mise en page et n'affirme rien de faux. Adaptation : la console ne rafraîchit ses statistiques que toutes les 30 s (mesuré — `lastHeartbeatAt` avance par pas de 30 s exacts, valeurs identiques entre deux battements). Interroger toutes les 5 s renvoie donc six fois la même mesure. Sans filtrage, le graphe deviendrait un escalier et 60 points ne couvriraient plus que 5 minutes. Une lecture identique à la précédente n'est donc pas enregistrée. Seuil de péremption locale recalibré de 150 s à 30 s : l'ancien était dimensionné pour 60 s + 60 s et ne signalait plus rien d'utile. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
49 lines
2.6 KiB
TypeScript
49 lines
2.6 KiB
TypeScript
/**
|
|
* Lightweight query defaults for the root client provider.
|
|
*
|
|
* Keep this list free of widget imports: importing widget definitions here
|
|
* would put every widget in the initial client bundle.
|
|
*/
|
|
export const widgetQueryRefetchIntervals = [
|
|
{ queryKey: [["docker", "getContainers"]], intervalSeconds: 30 },
|
|
{ queryKey: [["widget", "dnsHole"]], intervalSeconds: 10 },
|
|
{
|
|
queryKey: [["widget", "downloads", "getJobsAndStatuses"]],
|
|
intervalSeconds: 10,
|
|
staleTimeSeconds: 10,
|
|
},
|
|
{ queryKey: [["widget", "firewall"]], intervalSeconds: 10 },
|
|
{ queryKey: [["widget", "healthMonitoring"]], intervalSeconds: 10 },
|
|
{ queryKey: [["widget", "llamacpp"]], intervalSeconds: 5 },
|
|
{ queryKey: [["widget", "mediaServer", "getCurrentStreams"]], intervalSeconds: 10 },
|
|
{ queryKey: [["widget", "tracearr"]], intervalSeconds: 10 },
|
|
{ queryKey: [["widget", "unifiOs"]], intervalSeconds: 5 },
|
|
{
|
|
queryKey: [["widget", "weather", "atLocation"]],
|
|
intervalSeconds: 600,
|
|
staleTimeSeconds: 300,
|
|
},
|
|
{ queryKey: [["widget", "airQuality", "atLocation"]], intervalSeconds: 900 },
|
|
{ queryKey: [["widget", "immich", "getAlbum"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "immich", "getServerStats"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "immich", "getAlbums"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "indexerManager"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "mediaRelease"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "mediaTranscoding", "getDataAsync"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "minecraft", "getServerStatus"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "networkController"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "paperlessNgx"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "releases", "getLatest"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "rssFeed", "getFeeds"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "speedtestTracker"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "stats"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "stockPrice", "getPriceHistory"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "umami", "getVisitorStats"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "umami", "getActiveVisitors"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "umami", "getMultiEventTimeSeries"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "umami", "getTopPages"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "umami", "getTopReferrers"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "vpn"]], intervalSeconds: null },
|
|
{ queryKey: [["widget", "wud"]], intervalSeconds: null },
|
|
] as const;
|