code: def register(self, parent=None):
          '''Record the availability of this worker and get a unique identifer.
  
          This sets :attr:`worker_id` and calls :meth:`heartbeat`.  This
          cannot be called multiple times without calling
          :meth:`unregister` in between.
  
          '''
          if self.worker_id:
              raise ProgrammerError('Worker.register cannot be called again without first calling unregister; it is not idempotent')
          self.parent = parent
          self.worker_id = nice_identifier()
          self.task_master.worker_id = self.worker_id
          self.heartbeat()
          return self.worker_if register(self, parent=None):
          '''Record the availability of this worker and get a unique identifer.
  
          This sets :attr:`worker_id` and calls :meth:`heartbeat`.  This
          cannot be called multiple times without calling
          :meth:`unregister` in between.
  
          '''
          if self.worker_id:
              raise ProgrammerError('Worker.register cannot be called again without first calling unregister; it is not idempotent')
          self.parent = parent
          self.worker_id = nice_identifier()
          self.task_master.worker_id = self.worker_id
          self.heartbeat()
          return self.worker_id
docs: Record the availability of this worker and get a unique identifer.
  
          This sets :attr:`worker_id` and calls :meth:`heartbeat`.  This
          cannot be called multiple times without calling
          :meth:`unregister` in between.