Esta pregunta, y los que hay enlaces en respuestas a ella, podría ayudar: Is there some industry standard for unacceptable webapp response time?
Algo tangenciales a su pregunta (no hay intervalos de tiempo, lo siento), pero sospecho útil para su trabajo: Un común el acercamiento a los tiempos muertos es equilibrarlos con temporizadores de "retroceso".
Funciona de la siguiente manera: La primera vez que un servicio expira, no se preocupe. La segunda vez en una fila un servicio expira, no se moleste en llamarlo por N segundos. La tercera vez consecutiva que un servicio expira, no la llame durante N + 1 segundo. Luego N + 2, N + 3, N + 5, N + 8, etc., hasta llegar al límite máximo M.
El contador de tiempo de espera se restablece cuando obtiene una respuesta válida.
Estoy usando una secuencia de Fibbonacci para aumentar el período de "retroceso" aquí, pero por supuesto puede usar cualquier otra función adecuada; el punto es que si el servicio que está tratando lo sincroniza ". la creencia "en ella se hace cada vez más pequeña, por lo que gastas menos recursos tratando de llegar a ella, y tocas la puerta más raramente. Esto podría ayudar al servicio en el otro extremo, que simplemente podría estar sobrecargado y volver a solicitar solo empeora las cosas, y aumentará el tiempo de respuesta, ya que no esperará un servicio que probablemente no responda.
Es más común tener una progresión geométrica en lugar de una progresión lineal (por ejemplo, N, 2N, 4N) - para evitar que el servidor sea martillado. – ashes999
También es común agregar una cantidad aleatoria a cada reintento después de la primera para que el servicio inactivo no se destruya al reintentar todo al mismo tiempo. –