code: def greenlet_report(self):
          
  
          self.report_worker(w=1)
          while True:
              try:
                  self.report_worker()
              except Exception as e:  # pylint: disable=broad-except
                  self.log.error("When reporting: %s" % e)
              finally:
                  time.sleep(self.config["report_interval"])
docs: This greenlet always runs in background to update current status
              in MongoDB every N seconds.
  
              Caution: it might get delayed when doing long blocking operations.
              Should we do this in a thread instead?