分布式任务分配,目前流行的就是master-worker型,也就是有个master进程(或线程)来分配任务,其余的worker进程(或线程)来处理任务。我们一般都是采取多进程分布式处理任务,因为多进程比多线程要更加的稳定(起码在python中是这样)。
首先写master.py
import queue, random, time
from multiprocessing.managers import BaseManager
class QueueManager(BaseManager):
pass
task_queue = queue.Queue()
result_queu = queue.Queue()
res_info = False
QueueManager.register('task_queue', callable=lambda :task_queue)
QueueManager.register('result_queue', callable=lambda :result_queu)
QueueManager.register('res_info', callable=lambda :res_info)
manager = QueueManager(address=('127.23.122.11', 5000), authkey=b'abc')
manager.start()
task = manager.task_queue()
result = manager.result_queue()
info = manager.res_info()
for i in range(10):
n =random.randint(0,1000)
pri