docs: async def _throttled_message(self, message):
          '''Process a single request, respecting the concurrency limit.'''
          try:
              timeout = self.processing_timeout
              async with timeout_after(timeout):
                  async with self._incoming_concurrency:
                      if self._cost_fraction:
                          await sleep(self._cost_fraction * self.cost_sleep)
                      await self.handle_message(message)
          except ProtocolError as e:
              self.logger.error(f'{e}')
              self._bump_errors(e)
          except TaskTimeout:
              self.logger.info(f'incoming request timed out after {timeout} secs')
              self._bump_errors()
          except ExcessiveSessionCostError:
              await self.close()
          except CancelledError:
              raise
          except Exception:
              self.logger.exception(f'exception handling {message}')
              self._bump_errors()