A mobile app at Nimbus Mobile fetches data from several endpoints. Each request may time out multiple times before succeeding, and the app retries with exponential backoff.
Implement a function that computes when each request finally succeeds, assuming requests are processed independently and each retry waits longer than the previous one.
Given:
timeouts: an array where timeouts[i] is the number of consecutive timeouts before request i succeeds.base_delay: the delay after the first timeout.max_retries: the maximum number of retries allowed.For each request:
0.base_delay, 2 * base_delay, 4 * base_delay, ...max_retries, return the total elapsed wait time before success.max_retries, return -1 for that request.Return an array of results for all requests.
def schedule_retries(timeouts, base_delay, max_retries):