from multiprocessing.managers import BaseManager import Queue tasks_q = Queue.Queue() results_q = Queue.Queue() minions_q = Queue.Queue() master_q = Queue.Queue() class QueueManager(BaseManager): """ One QueueManager to rule all network Queues """ pass QueueManager.register('get_tasks_q', callable=lambda: tasks_q) QueueManager.register('get_results_q', callable=lambda: results_q) QueueManager.register('get_minions_q', callable=lambda: minions_q) QueueManager.register('get_master_q', callable=lambda: master_q) def get_qs(qm): """ pass in a QueueManager, and this function returns all relevant queues attached to that QueueManager. """ return (qm.get_tasks_q(), qm.get_results_q(), qm.get_master_q(), qm.get_minions_q())