code: def spawn_worker(self, entrypoint, args, kwargs,
                       context_data=None, handle_result=None):
          
  
          if self._being_killed:
              _log.info("Worker spawn prevented due to being killed")
              raise ContainerBeingKilled()
  
          service = self.service_cls()
          worker_ctx = WorkerContext(
              self, service, entrypoint, args, kwargs, data=context_data
          )
  
          _log.debug('spawning %s', worker_ctx)
          gt = self._worker_pool.spawn(
              self._run_worker, worker_ctx, handle_result
          )
          gt.link(self._handle_worker_thread_exited, worker_ctx)
  
          self._worker_threads[worker_ctx] = gt
          return worker_ctx
docs: Spawn a worker thread for running the service method decorated
          by `entrypoint`.
  
          ``args`` and ``kwargs`` are used as parameters for the service method.
  
          ``context_data`` is used to initialize a ``WorkerContext``.
  
          ``handle_result`` is an optional function which may be passed
          in by the entrypoint. It is called with the result returned
          or error raised by the service method. If provided it must return a
          value for ``result`` and ``exc_info`` to propagate to dependencies;
          these may be different to those returned by the service method.