@@ -244,6 +244,7 @@ async def _is_service_up(self, service: ApplicationService) -> bool:
244244 return state == ApplicationServiceState .UP or state is None
245245
246246
247+ # NOTE: Beeper changes from upstream to the backoff system
247248class _Recoverer :
248249 """Manages retries and backoff for a DOWN appservice.
249250
@@ -263,21 +264,20 @@ def __init__(self, clock, store, as_api, service, callback):
263264 self .as_api = as_api
264265 self .service = service
265266 self .callback = callback
266- self .backoff_counter = 1
267+ self .backoff_counter = 0
267268
268269 def recover (self ):
269270 def _retry ():
270271 run_as_background_process (
271272 "as-recoverer-%s" % (self .service .id ,), self .retry
272273 )
273274
274- delay = 2 ** self .backoff_counter
275+ delay = self .backoff_counter
275276 logger .info ("Scheduling retries on %s in %fs" , self .service .id , delay )
276277 self .clock .call_later (delay , _retry )
277278
278279 def _backoff (self ):
279- # cap the backoff to be around 8.5min => (2^9) = 512 secs
280- if self .backoff_counter < 9 :
280+ if self .backoff_counter < 5 :
281281 self .backoff_counter += 1
282282 self .recover ()
283283
@@ -301,7 +301,7 @@ async def retry(self):
301301 await txn .complete (self .store )
302302
303303 # reset the backoff counter and then process the next transaction
304- self .backoff_counter = 1
304+ self .backoff_counter = 0
305305
306306 except Exception :
307307 logger .exception ("Unexpected error running retries" )
0 commit comments