例:python简朴分布式demo(引荐进修:Python视频教程)
A效劳器是master,B效劳器为worker。
A效劳器上实行taskManger.py
# coding:utf-8 import random,time,Queue from multiprocessing.managers import BaseManager #完成第一步:竖立task_queue和result_queue,用来寄存使命和效果 task_queue=Queue.Queue() result_queue=Queue.Queue() class Queuemanager(BaseManager): pass #完成第二步:把建立的两个行列注册在收集上,应用register要领,callable参数关联了Queue对象, # 将Queue对象在收集中暴露 Queuemanager.register('get_task_queue',callable=lambda:task_queue) Queuemanager.register('get_result_queue',callable=lambda:result_queue) #完成第三步:绑定端口8001,设置考证口令‘qiye’。这个相当于对象的初始化 manager=Queuemanager(address=('',8001),authkey='lsf') #完成第四步:启动治理,监听信息通道 manager.start() #完成第五步:经由过程治理实例的要领取得经由过程收集接见的Queue对象 task=manager.get_task_queue() result=manager.get_result_queue() #完成第六步:增加使命 for url in ["ImageUrl_"+str(i) for i in range(10)]: print 'put task %s ...' %url task.put(url) #猎取返回效果 print 'try get result...' for i in range(10): print 'result is %s' %result.get(timeout=10) #封闭治理 manager.shutdown()
B效劳器上实行worker的剧本taskWorker.py
#coding:utf-8 import time from multiprocessing.managers import BaseManager # 建立相似的QueueManager: class QueueManager(BaseManager): pass # 完成第一步:运用QueueManager注册猎取Queue的要领称号 QueueManager.register('get_task_queue') QueueManager.register('get_result_queue') # 完成第二步:连接到效劳器: server_addr = '127.0.0.1' print('Connect to server %s...' % server_addr) # 端口和考证口令注重坚持与效劳历程设置的完全一致: m = QueueManager(address=(server_addr, 8001), authkey='lsf') # 从收集连接: m.connect() # 完成第三步:猎取Queue的对象: task = m.get_task_queue() result = m.get_result_queue() # 完成第四步:从task行列取使命,并把效果写入result行列: while(not task.empty()): image_url = task.get(True,timeout=5) print('run task download %s...' % image_url) time.sleep(1) result.put('%s--->success'%image_url) # 处置惩罚完毕: print('worker exit.')
更多Python相干技术文章,请接见Python教程栏目举行进修!
以上就是python中demo是什么的细致内容,更多请关注ki4网别的相干文章!