def __init__(self, maxCores, producer_Class, consumer_Class, governorOffFlag = False):
logger.debug("mpEngine initializing")
self.governorOffFlag = governorOffFlag
self.maxCores = maxCores
self.__deleting__ = False
self.__internalLock__ = multiprocessing.Lock()
self.killed_event = multiprocessing.Event()
# Producers
self.num_producers = 0
self.next_worker_num = 0
self.producer_Class = producer_Class
self.producer_pool = []
self.producer_pool_exitEvent = []
self.producer_task_queue = multiprocessing.JoinableQueue()
self.producer_results_queue = multiprocessing.JoinableQueue()
self.producer_pool_progress = multiprocessing.Value('i', 0)
# Consumers
self.num_consumers = 0
self.next_consumer_num = 0
self.consumer_Class = consumer_Class
self.consumer_pool = []
# Note: consumer_pool_exitEvent is used both to notify a worker it should end and for the worker to notify it has dones so
self.consumer_pool_exitEvent = []
self.consumer_task_queue = self.producer_results_queue
self.consumer_results_queue = multiprocessing.JoinableQueue()
self.consumer_pool_progress = multiprocessing.Value('i', 0)
# Tasks
self.num_tasks = multiprocessing.Value('i', 0)
self.tasks_added = False
# Rebalance checks
self._rebalance_last_kick = datetime.now()
self.rebalance_backoff_timer = 60 * 1
self._rebalance_mem_last_kick = datetime.now()
self.rebalance_mem_backoff_timer = 60 * 2
mpEngineProdCons.py 文件源码
python
阅读 35
收藏 0
点赞 0
评论 0
评论列表
文章目录