code: async def run_forever(self, relax=0.1, offset=None, timeout=20, allowed_updates=None):
          
          while 1:
              try:
                  result = await self._bot.getUpdates(offset=offset,
                                                      timeout=timeout,
                                                      allowed_updates=allowed_updates)
  
                  # Once passed, this parameter is no longer needed.
                  allowed_updates = None
  
                  # No sort. Trust server to give messages in correct order.
                  for update in result:
                      self._update_handler(update)
                      offset = update['update_id'] + 1
  
              except CancelledError:
                  break
              except exception.BadHTTPResponse as e:
                  traceback.print_exc()
  
                  # Servers probably down. Wait longer.
                  if e.status == 502:
                      await asyncio.sleep(30)
              except:
                  traceback.print_exc()
                  await asyncio.sleep(relax)
              else:
                  await asyncio.sleep(relax)
docs: Process new updates in infinity loop
  
          :param relax: float
          :param offset: int
          :param timeout: int
          :param allowed_updates: bool