docs: def run(self):
          '''Run jobs, popping one after another'''
          # Register our signal handlers
          self.signals()
  
          with self.listener():
              for job in self.jobs():
                  # If there was no job to be had, we should sleep a little bit
                  if not job:
                      self.jid = None
                      self.title('Sleeping for %fs' % self.interval)
                      time.sleep(self.interval)
                  else:
                      self.jid = job.jid
                      self.title('Working on %s (%s)' % (job.jid, job.klass_name))
                      with Worker.sandbox(self.sandbox):
                          job.sandbox = self.sandbox
                          job.process()
                  if self.shutdown:
                      break