抽了点时间体验了一把python 分布式进程,有点像分布式计算的意思,不过我现在还没有这个需求,先把简单体验的脚本发出来,供路过的各位高手指教
注:需要先下载multiprocessing 的python包支持才行。
管理端:
cat task_manager.py  
#!/usr/bin/env python
#coding:utf8 import random,time,Queue,json
from 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 设置验证码'123456' manager = QueueManager(address=('',5000),authkey='123456') #启动Queue:
manager.start() #获得通过网络访问的Queue对象:
task = manager.get_task_queue()
result = manager.get_result_queue() #放任务进去:
print 'put tasks ........'
shell_cmd = ['date','hostname','uptime']
print 'Put task \033[1;31;2m [%s] \033[0m..' %shell_cmd while True:
print 'get result.....'
task.put(shell_cmd)
r = result.get()
print 'Result:\033[1;32;40m %s \033[0m...' %r manager.shutdown() 客户端: #!/usr/bin/env python
#coding:utf8 import time,sys,Queue,os,commands
from multiprocessing.managers import BaseManager #创建类似的QueueManager:
class QueueManager(BaseManager):
pass #由于这个queuemanager 只从网络上获取queue,所以注册时只提供名字:
QueueManager.register('get_task_queue')
QueueManager.register('get_result_queue') #连接到服务器 也就是迍务器
server_addr = '10.1.10.15'
print 'Connect to server %s...' %server_addr #端口和验证码注意保持与taskmanager.py的一致
m = QueueManager(address=(server_addr,5000),authkey='123456')
#从网络连接
m.connect()
#获取Queue的对象
task = m.get_task_queue()
result = m.get_result_queue() #从task队列取作务,并把结果写处result队列 n = task.get(timeout=1)
print n,type(n) s,v =commands.getstatusoutput("ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'")
r_dic = {v:[]}
for i in n: print 'run task \033[1;36;40m %s \033[0m' %i
r = os.popen(i).read().split('\n')[:-1]
r_dic[v].append(r)
time.sleep(1)
result.put(r_dic)
print r_dic
#处理结束:
print 'worker exit.'

python 分布式进程体验的更多相关文章

  1. python分布式进程(windows下)

    分布式进程: 在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上. Py ...

  2. python分布式进程

    分布式进程指的是将Process进程分布到多台机器上,充分利用多态机器的性能完成复杂的任务 分布式进程在python 中依然要用到multiprocessing 模块.multiprocessing模 ...

  3. Python分布式进程报错:pickle模块不能序列化lambda函数

    今天在学习到廖老师Python教程的分布式进程时,遇到了一个错误:_pickle.PicklingError: Can't pickle <function <lambda> at ...

  4. Python 分布式进程

    #-*-coding:utf-8-*- '''分布式进程指的是将Process进程分不到多台机器上,充分利用多台机器的性能完成复杂的任务''' #服务器端 #--------------------- ...

  5. python 进程和线程-进程和线程的比较以及分布式进程

    进程和线程的比较 参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017631469467456 我们介绍了多进程和多线程,这是实现多任 ...

  6. python多进程,进程池,数据共享,进程通信,分布式进程

    一.操作系统中相关进程的知识   Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊.普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前 ...

  7. 【python】进程与线程

    No1: 多进程 from multiprocessing import Process import os # 子进程要执行的代码 def run_proc(name): print('Run ch ...

  8. 第三百六十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索的自动补全功能

    第三百六十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—用Django实现搜索的自动补全功能 elasticsearch(搜索引擎)提供了自动补全接口 官方说明:https://www.e ...

  9. 【Python】进程和线程

    多进程 多线程 ThreadLocal 进程vs线程 分布式进程 Top 学习廖老师的py官网的笔记 多任务的实现方式有三种方式: 1.多进程 2.多线程 3.多进程+多线程(这种比较复杂,实际很少采 ...

随机推荐

  1. C#代码分析(第三周)

    阅读下面程序,请回答如下问题: 问题1:这个程序要找的是符合什么条件的数? 问题2:这样的数存在么?符合这一条件的最小的数是什么? 问题3:在电脑上运行这一程序,你估计多长时间才能输出第一个结果?时间 ...

  2. Java编写的电梯模拟系统《结对作业》

    作业代码:https://coding.net/u/liyi175/p/Dianti/git 伙伴成员:李伊 http://home.cnblogs.com/u/Yililove/ 对于这次作业,我刚 ...

  3. cxgrid中,如何根据列名或字段名取得footer值

    注意,不是根据index取得footer值cxgrdtbv1.DataController.Summary.FooterSummaryValues[0]; ------解决方案------------ ...

  4. linux_添加定时任务,每5min清理下某个文件夹下的文件

    性能测试的过程中会生成大量的日志文件,导致无法继续进行,linux可以增加一个定时任务,进行定时清理 1. 先编写一个sh脚本,该sh脚本用于文件夹文件清理,脚本编写完成后拷贝到服务器上,且授予权限 ...

  5. [转]正确设置nginx/php-fpm/apache权限

    核心总结:php-fpm/apache 进程所使用的用户,不能是网站文件所有者. 凡是违背这个原则,则不符合最小权限原则. 根据生产环境不断反馈,发现不断有 php网站被挂木马,绝大部分原因是因为权限 ...

  6. UVA10047_The Monocycle

    这题....有点奇葩,但是不难. 在矩形方阵里,某人可以往前走或者左拐右拐.都需要消耗一个单位时间. 问某人从一个点走向另一个点的最短时间,并且走过的路程是5的倍数. 由于n,m都小,直接f[n][m ...

  7. C 函数——Day04

    C 函数 函数是一组一起执行一个任务的语句.每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数. 您可以把代码划分到不同的函数中.如何划分代码到不同的函数 ...

  8. P3701 「伪模板」主席树

    题目背景 byx和手气君都非常都非常喜欢种树.有一天,他们得到了两颗奇怪的树种,于是各自取了一颗回家种树,并约定几年后比一比谁种出来的树更加牛x. 题目描述 很快,这棵树就开花结果了.byx和手气君惊 ...

  9. P4433 [COCI2009-2010#1] ALADIN

    题目描述 给你 n 个盒子,有 q 个操作,操作有两种: 第一种操作输入格式为"1 L R A B",表示将编号为L到R的盒子里的石头数量变为(X−L+1)×A mod B,其中 ...

  10. PowerDesigner在生成SQL时报错Generation aborted due to errors detected during the verification of the mod

    一.本章节要用到  ODBC连接数据库直接创建表,请先创建连接库的ODBC 请参考  新建  http://www.cnblogs.com/wdw31210/p/7580286.html 二.生成 去 ...