def __init__( self, num_workers=4, start_method="fork", worker_class=ProcessQueueExecutor, ): # if not isinstance(worker_class, Worker): # raise Exception # Retrieve the spawn context for the joinable queue super class ctx = get_context(start_method) # Init super class super().__init__(ctx=ctx) # Number of workers to spawn self._num_workers = num_workers # JoinableQueue to store completed jobs self._completed_jobs = JoinableQueue(ctx=ctx) # Worker class, can be either Process or Thread self._workerclass = worker_class self._results = {} threading.Thread( target=gather_results, args=(self._results, self._completed_jobs), daemon=True, ).start() # Spin the workers self.start_workers()
def __init__(self, transitions, name=None): self._running = multiprocessing.Event() self.interrupted = multiprocessing.Event() self.name = name or Machine.get_random_string() self.tasks = JoinableQueue(maxsize=-1, ctx=multiprocessing.get_context()) self.states, self.transitions, self.start_state = self._init_machine( transitions) self.coordinator = Machine.Coordinator(self.tasks, self.transitions, machine=self)
def JoinableQueue(maxsize=0): """ Returns a queue object """ from multiprocessing.queues import JoinableQueue return JoinableQueue(maxsize)
def JoinableQueue(maxsize=0): from multiprocessing.queues import JoinableQueue return JoinableQueue(maxsize)