Sto lavorando su un'applicazione in cui voglio mantenere un valore di timeout calcolato in modo dinamico utilizzando una media mobile di circa 100 precedenti tempi di risposta per il servizio A.
Questo value + some buffer (~3 seconds)
verrà utilizzato come timeout per le richieste di rete per il servizio A.
Il problema qui è che voglio che questo timeout migliori con le caratteristiche della rete - questo non è un problema quando l'utente passa da una rete lenta a una rete più veloce, ma nel caso opposto, il timeout dovrebbe aumentare gradualmente, eccetto negli scenari in cui la connessione era imprevedibile (come in un garage), nel qual caso non voglio che questo timeout aumenti poiché questo è transitorio.
Non sono sicuro se sia persino possibile distinguere tra i 2 casi sopra menzionati.
Anche se no, cosa dovrei registrare come tempo di risposta quando una richiesta è scaduta?
Stavo pensando di registrare (currentTimeoutValue + 2)
secondi, questo funziona bene per il caso di garage (non spinge la media in modo drammatico), ma se qualcuno si troverà su una rete più lenta per un po ', ci vorranno molte più richieste scadute per raggiungere la velocità attuale della rete.
Qualsiasi suggerimento è apprezzato.