docs: def stats_add_duration(self, key, duration):
          """Add a duration to the per-message measurements
  
          .. versionadded:: 3.19.0
  
          .. note:: If this method is called when there is not a message being
              processed, a message will be logged at the ``warning`` level to
              indicate the value is being dropped. To suppress these warnings,
              set the :attr:`~rejected.consumer.Consumer.IGNORE_OOB_STATS`
              attribute to :data:`True`.
  
          :param key: The key to add the timing to
          :type key: :class:`str`
          :param duration: The timing value in seconds
          :type duration: :class:`int` or :class:`float`
  
          """
          if not self._measurement:
              if not self.IGNORE_OOB_STATS:
                  self.logger.warning(
                      'stats_add_timing invoked outside execution')
              return
          self._measurement.add_duration(key, duration)