开发者社区> 天飞.h> 正文

python 分布式进程通信

简介: task_master.txttask_worker.txt 点击(此处)折叠或打开 #!/usr/bin/env python3 #-*- coding:utf-8 -*- ...
+关注继续查看
img_e25d4fb2f8de1caf41a735ec53088516.pngtask_master.txt
img_e25d4fb2f8de1caf41a735ec53088516.pngtask_worker.txt

点击(此处)折叠或打开

  1. #!/usr/bin/env python3
  2. #-*- coding:utf-8 -*-
  3. '''
  4. '''
  5. import time,random,queue
  6. from multiprocessing.managers import BaseManager

  7. task_queue = queue.Queue()
  8. result_queue = queue.Queue()

  9. class QueueManager(BaseManager):
  10.     pass

  11. QueueManager.register('get_task_queue', callable=lambda: task_queue)
  12. QueueManager.register('get_result_queue', callable=lambda: result_queue)

  13. manager = QueueManager(address=('', 5000), authkey=b'talen')
  14. manager.start()
  15. task = manager.get_task_queue()
  16. result = manager.get_result_queue()
  17. for i in range(10):
  18.     n = random.randint(0,9000)
  19.     print('Put task %d' % n)
  20.     task.put(n)
  21. for i in range(10):
  22.     r=result.get(timeout=10)
  23.     print("Result : %s " % r)
  24. manager.shutdown()

  25. print('master exit.')


点击(此处)折叠或打开

  1. #!/usr/bin/env python3
  2. #-*- coding:utf-8 -*-
  3. '''
  4. '''


  5. import time, queue, sys
  6. from multiprocessing.managers import BaseManager
  7. class QueueManger(BaseManager):
  8.     pass
  9. QueueManger.register('get_task_queue')
  10. QueueManger.register('get_result_queue')
  11. server_addr='127.0.0.1'
  12. print('Connect to server %s '% server_addr)
  13. m=QueueManger(address=(server_addr,5000), authkey=b'talen')
  14. m.connect()
  15. task=m.get_task_queue()
  16. result=m.get_result_queue()
  17. for i in range(10):
  18.     try:
  19.         n=task.get(timeout=1)
  20.         print('run task %d * %d ...' %(n,n))
  21.         r='%d * %d = %d' % (n,n,n*n)
  22.         time.sleep(1)
  23.         result.put(r)
  24.     except Queue.Empty:
  25.         print('task queue is empty')
  26. print('worker exit.')
t@localhost untitled$ python3 task_master.py 
Put task 6811
Put task 5164
Put task 8492
Put task 177
Put task 5496
Put task 8724
Put task 6422
Put task 2887
Put task 287
Put task 876
Result : 6811 * 6811 = 46389721 
Result : 5164 * 5164 = 26666896 
Result : 8492 * 8492 = 72114064 
Result : 177 * 177 = 31329 
Result : 5496 * 5496 = 30206016 
Result : 8724 * 8724 = 76108176 
Result : 6422 * 6422 = 41242084 
Result : 2887 * 2887 = 8334769 
Result : 287 * 287 = 82369 
Result : 876 * 876 = 767376 
master exit.
t@localhost untitled$ 
t@localhost untitled$ python3 task_worker.py 
Connect to server 127.0.0.1 
run task 6811 * 6811 ...
run task 5164 * 5164 ...
run task 8492 * 8492 ...
run task 177 * 177 ...
run task 5496 * 5496 ...
run task 8724 * 8724 ...
run task 6422 * 6422 ...
run task 2887 * 2887 ...
run task 287 * 287 ...
run task 876 * 876 ...
worker exit.
t@localhost untitled$ 




参考学习:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431929340191970154d52b9d484b88a7b343708fcc60000#0

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
python3,进程间的通信
本文来源于python 3.5版本的官方文档 multiprocessing模块为进程间通信提供了两种方法: 1.进程队列queue The Queue class is a near clone of queue.Queue。
917 0
python os.startfile python实现双击运行程序 python监控windows程序 监控进程不在时重新启动
用python监控您的window服务 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://world77.blog.51cto.com/414605/782935     最近比较烦,研发给的pc服务版本在虚拟机上已经开始给客户使用了,服务老是莫名的死翘翘,客户不停的电话给我,搞的我心情很差,于是在一个下午,静下心来,用python写了个简单的监控进程的脚本,当发现进程消失的时候,立即调用服务,开启服务。
1789 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
20888 0
蚂蚁金服CTO程立:金融级分布式交易的技术路径
伴随蚂蚁金服在新金融领域的探索,蚂蚁金服技术团队也在金融技术与架构领域不断开拓。从2005 年每秒处理1笔交易到2016 年“双十一”每秒处理12 万笔交易,从单一的支付到覆盖微贷、理财、保险、信用、银行等,那么这一切是如何发展起来的呢?今天来自蚂蚁金服的CTO程立将向大家解读这一问题。
5905 0
最新天猫面试题(含总结):线程池+并发编程+分布式设计+中间件
一面: HashMap实现原理,ConcurrentHashMap实现原理 红黑树,为什么允许局部不平衡 TCP,UDP区别,为什么可靠和不可靠 一次HTTP请求的全过程,包括域名解析、定位主机等 TCP三次握手 MySQL事务是什么?四大特性,四大隔离级别 Concurr...
1345 0
+关注
天飞.h
脚踏实地,仰望天空. https://talenhao.github.io/
260
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载