docs: def Run(self):
      """Retrieve all the clients for the AbstractClientStatsCollectors."""
      try:
  
        self.stats = {}
  
        self.BeginProcessing()
  
        processed_count = 0
  
        for client_info_batch in _IterateAllClients(
            recency_window=self.recency_window):
          for client_info in client_info_batch:
            self.ProcessClientFullInfo(client_info)
          processed_count += len(client_info_batch)
          self.Log("Processed %d clients.", processed_count)
          self.HeartBeat()
  
        self.FinishProcessing()
        for fd in itervalues(self.stats):
          fd.Close()
  
        logging.info("%s: processed %d clients.", self.__class__.__name__,
                     processed_count)
      except Exception as e:  # pylint: disable=broad-except
        logging.exception("Error while calculating stats: %s", e)
        raise