示例#1
0
文件: jobqueue.py 项目: zanachka/tasq
 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()
示例#2
0
    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)
示例#3
0
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)