docs: def task_done(self, message):
          """Mark a fetched message as consumed.
  
          Offsets for messages marked as "task_done" will be stored back
          to the kafka cluster for this consumer group on commit()
  
          Arguments:
              message (KafkaMessage): the message to mark as complete
  
          Returns:
              True, unless the topic-partition for this message has not
              been configured for the consumer. In normal operation, this
              should not happen. But see github issue 364.
          """
          topic_partition = (message.topic, message.partition)
          if topic_partition not in self._topics:
              logger.warning('Unrecognized topic/partition in task_done message: '
                             '{0}:{1}'.format(*topic_partition))
              return False
  
          offset = message.offset
  
          # Warn on non-contiguous offsets
          prev_done = self._offsets.task_done[topic_partition]
          if prev_done is not None and offset != (prev_done + 1):
              logger.warning('Marking task_done on a non-continuous offset: %d != %d + 1',
                             offset, prev_done)
  
          # Warn on smaller offsets than previous commit
          # "commit" offsets are actually the offset of the next message to fetch.
          prev_commit = self._offsets.commit[topic_partition]
          if prev_commit is not None and ((offset + 1) <= prev_commit):
              logger.warning('Marking task_done on a previously committed offset?: %d (+1) <= %d',
                             offset, prev_commit)
  
          self._offsets.task_done[topic_partition] = offset
  
          # Check for auto-commit
          if self._does_auto_commit_messages():
              self._incr_auto_commit_message_count()
  
          if self._should_auto_commit():
              self.commit()
  
          return True