分布式多进程
来源:互联网 发布:中电数据 李世锋 简历 编辑:程序博客网 时间:2024/05/16 15:29
# 1、master注册2个队列到网络上import random, time, queuefrom multiprocessing.managers import BaseManager# 发送任务的队列:task_queue = queue.Queue()# 接收结果的队列:result_queue = queue.Queue()# 从 BaseManager 继承的 QueueManager:class QueueManager(BaseManager): pass# 把两个 Queue 都注册到网络上, callable 参数关联了 Queue 对象:QueueManager.register('get_task_queue', callable=lambda: task_queue)QueueManager.register('get_result_queue', callable=lambda:result_queue)# 绑定端口 5000, 设置验证码'abc':manager = QueueManager(address=('', 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, 10000) 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.')# 2、worker:其他服务器连接此队列import time,queuefrom multiprocessing.managers import BaseManager# 创建类似的 QueueManager:class QueueManager(BaseManager): pass# 由于这个 QueueManager 只从网络上获取 Queue,所以注册时只提供名字:QueueManager.register('get_task_queue')QueueManager.register('get_result_queue')# 连接到服务器,也就是运行 task_master.py 的机器:server_addr = '127.0.0.1'print('Connect to server %s...' % server_addr)# 端口和验证码注意保持与 task_master.py 设置的完全一致:m = QueueManager(address=(server_addr, 5000), authkey=b'abc')# 从网络连接:m.connect()# 获取 Queue 的对象:task = m.get_task_queue()result = m.get_result_queue()# 从 task 队列取任务,并把结果写入 result 队列: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 queue.Empty: print('task queue is empty.')# 处理结束:print('worker exit.')
阅读全文
0 0
- 分布式多进程
- 分布式进程
- 分布式进程
- 分布式进程
- python多进程入门、分布式进程数据共享
- python分布式进程
- python分布式进程模型
- unix/linux分布式进程
- python 分布式进程
- python分布式进程
- python 分布式进程
- python分布式进程
- python分布式进程
- python 学习 -- 分布式进程
- Python基础-分布式进程
- 简单的分布式进程
- 分布式进程--错误解决
- php 多进程 同步数据 mysql分布式锁
- 三种字符数组合并的方法
- php正则判断积累
- adobe acrobat看PDF文档显示字体发虚,有毛刺的解决办法
- 开启归档模式报错
- 一段很有意思的代码
- 分布式多进程
- 单机安装部署FastDFS
- C++ Primer 学习笔记:类型转换
- JS高级程序设计第四章笔记作用域&作用域链
- hdu2510 dfs打表
- Extjs grid表头换行
- 操作数据库出现错误的查找问题方法
- netty学习(一)IO模型
- Linux-Centos 7 mysql 5.7.9 rpm install