python 学习 -- 分布式进程
来源:互联网 发布:jquery数组去掉字符串 编辑:程序博客网 时间:2024/05/22 06:58
服务器端:
import random,time,queuefrom multiprocessing.managers import BaseManager# 发送任务的队列task_queue = queue.Queue()# 接收结果的队列result_queue = queue.Queue()class QueueManager(BaseManager): pass# 定义一个返回task_queue的函数def return_task_queue(): global task_queue return task_queue# 定义一个返回结果队列的函数def return_result_queue(): global result_queue return result_queue# 测试函数def test(): # 将两个queue注册到网络上 QueueManager.register('get_task_queue', callable=return_task_queue) QueueManager.register('get_result_queue', callable=return_result_queue) # 绑定端口,同时设置验证码 manager = QueueManager(address=('127.0.0.1', 5000), authkey=b'abc') # 启动queue manager.start() # 获得通过网络访问的queue对象 task = manager.get_task_queue() result = manager.get_result_queue() # 放几个任务进去 for i in range(10): n = random.randint(0, 100) print('Put task %d...' % n) task.put(n) # 从result队列中取出结果 print("Try get results...") for i in range(10): r = result.get(timeout=10) print("Result: %s" % r) # 关闭(之前一直阻塞) manager.shutdown() print("master exit.")# main函数if __name__=="__main__": test()
测试端:
import time,sys,queuefrom multiprocessing.managers import BaseManagerclass QueueManager(BaseManager): pass# 从网络上获取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,5000),authkey=b'abc')m.connect()# 获取queue对象task = m.get_task_queue()result = m.get_result_queue()for i in range(10): try: n = task.get(timeout=1) print('run task %d*%d...' % (n,n)) r = '%d * %d = %d' %(n,n,n*n) time.sleep(1) result.put(r) except BaseException: print('error')print("worker exit.")
0 0
- python 学习 -- 分布式进程
- Python学习之分布式进程初探(1)
- python学习——分布式进程
- python分布式进程
- python分布式进程模型
- python 分布式进程
- python分布式进程
- python 分布式进程
- python分布式进程
- python分布式进程
- Python基础-分布式进程
- python BaseManager分布式学习
- 学习笔记_分布式进程
- python分布式进程(windows下)
- Python在windows下的分布式进程
- Python基础-分布式进程 Master/Worker模型
- gearman 分布式系统学习 python
- Python分布式学习(2)
- Multiple dex files define(重复引用包)
- Django1.10文档学习笔记二
- js立即执行函数
- Django1.10文档学习笔记三
- Django1.10文档学习笔记四
- python 学习 -- 分布式进程
- codevs2572 路面修整--------DP+离散化
- 实战mysql集群搭建(一)--centos7下二进制安装mysql-5.6
- 关于adodb的简单介绍
- cmake简易教程
- 爬虫——用xslt抽取页面内容
- 洛谷 1092
- 四边形不等式优化DP学习小记
- 对《教会徒弟,饿死师傅的理解》