code: def _work(self, burst=False, logging_level=logging.INFO):
          
          setup_loghandlers(logging_level)
          self._install_signal_handlers()
  
          self.did_perform_work = False
          self.register_birth()
          self.log.info(
              "RQ GEVENT worker (Greenlet pool size={0}) {1!r} started, version {2}".format(
                  self.gevent_pool.size, self.key, VERSION
              )
          )
          self.set_state(WorkerStatus.STARTED)
  
          try:
              while True:
                  try:
                      self.check_for_suspension(burst)
  
                      if self.should_run_maintenance_tasks:
                          self.clean_registries()
  
                      if self._stop_requested:
                          self.log.info("Stopping on request.")
                          break
  
                      timeout = None if burst else max(1, self.default_worker_ttl - 60)
  
                      result = self.dequeue_job_and_maintain_ttl(timeout)
                      if result is None and burst:
                          self.log.info("RQ worker {0!r} done, quitting".format(self.key))
  
                          try:
                              # Make sure dependented jobs are enqueued.
                              gevent.wait(self.children)
                          except LoopExit:
                              pass
                          result = self.dequeue_job_and_maintain_ttl(timeout)
  
                      if result is None:
                          break
                  except StopRequested:
                      break
  
                  job, queue = result
                  self.execute_job(job, queue)
  
          finally:
              if not self.is_horse:
                  self.register_death()
          return self.did_perform_work
docs: Starts the work loop.
  
          Pops and performs all jobs on the current list of queues.  When all
          queues are empty, block and wait for new jobs to arrive on any of the
          queues, unless `burst` mode is enabled.
  
          The return value indicates whether any jobs were processed.