设为首页 收藏本站
查看: 1146|回复: 0

[经验分享] python的分布式任务并行处理框架Jug简单使用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-5-3 17:44:09 | 显示全部楼层 |阅读模式
前言:
       大家是否需要一个强度大点的任务处理框架,比如临时发送大量的通知邮件,需要做大量的cpu计算,需要做大量的部署,需要做xxxx。 好嘞,下面看看jug的介绍及使用文档。

   介绍一个简单易用的任务处理框架,名字叫Jug,它是一个基于任务的并行处理框架,采用 Python 编写,可立马实现多任务处理,及在不同的机器上运行同一个任务,使用 NFS 做文件系统的通讯;也可在使用同一台服务器的多CPU运行同一任务。这里不仅可以用nfs,也可以用redis。

个人觉得他比celery相比,在于接口不好用。用celery可以轻易做成异步,当然jug的优势在于轻易的分布式,和派生多进程,以及任务不会冲突。当然这些东西也可以自己开发实现。  看个人喜好了。


我这里的测试代码很简单,就是获取一个列表,然后用jug运行,大家会注意到,你不管开了多少个进程,他们的任务都不会冲突,有点类似redis队列。


#coding:utf-8
#from xiaorui.cc
from jug import TaskGenerator
import time
import os,sys
@TaskGenerator
def is_prime(n):
    print '现在进行的是任务: %s'%n
    time.sleep(1)
    ltime = int(time.time())
    print ltime
    time.sleep(1)
    return True
plist=[1,2,3,4,5,6,7,8,9,10,'w1','w2','w3','w4','w5','w6','d1','d2','d3','d4','d5','d6']
primes100 = map(is_prime,plist)
print 'o

在第一台服务器处理的结果:


[iyunv@67 var]# jug execute s.py
ok
现在进行的是任务: 1
1399001613
现在进行的是任务: 2
1399001615
现在进行的是任务: 3
1399001617
现在进行的是任务: 4
1399001619
现在进行的是任务: 6
1399001621
现在进行的是任务: 8
1399001623
现在进行的是任务: 10
1399001625
现在进行的是任务: w2
1399001627
现在进行的是任务: w4
1399001629
现在进行的是任务: w6
1399001632
现在进行的是任务: d2
1399001634
现在进行的是任务: d4
1399001636
现在进行的是任务: d6

再另一台服务器测试的结果:



xiaorui.cc
[iyunv@110 var]# jug execute s.py
ok
现在进行的是任务: 5
1399001620
现在进行的是任务: 7
1399001623
现在进行的是任务: 9
1399001625
现在进行的是任务: w1
1399001627
现在进行的是任务: w3
1399001629
现在进行的是任务: w5
1399001631
现在进行的是任务: d1
1399001633
现在进行的是任务: d3
1399001635
现在进行的是任务: d5
1399001637
    Executed      Loaded  Task name                                                                                             
--------------------------------------------------------------------------------------------------------------------------------------
           9           3  s.is_prime                                                                                             
......................................................................................................................................
           9           3  Total


可以看到,他们在完成任务后,会把记录hash的方式写入记录。


[iyunv@67 var]# ll s.jugdata/
总用量 96
drwxr-xr-x 2 root root 4096 5月   2 11:33 0b
drwxr-xr-x 2 root root 4096 5月   2 11:33 12
drwxr-xr-x 2 root root 4096 5月   2 11:33 14
drwxr-xr-x 2 root root 4096 5月   2 11:33 1d
drwxr-xr-x 2 root root 4096 5月   2 11:33 25
drwxr-xr-x 2 root root 4096 5月   2 11:33 4d
drwxr-xr-x 2 root root 4096 5月   2 11:33 4f
drwxr-xr-x 2 root root 4096 5月   2 11:33 58
drwxr-xr-x 2 root root 4096 5月   2 11:33 59
drwxr-xr-x 2 root root 4096 5月   2 11:33 6f
drwxr-xr-x 2 root root 4096 5月   2 11:33 75
drwxr-xr-x 2 root root 4096 5月   2 11:33 79
drwxr-xr-x 2 root root 4096 5月   2 11:33 7c
drwxr-xr-x 2 root root 4096 5月   2 11:33 8d
drwxr-xr-x 2 root root 4096 5月   2 11:33 96
drwxr-xr-x 2 root root 4096 5月   2 11:33 a7
drwxr-xr-x 2 root root 4096 5月   2 11:33 a9
drwxr-xr-x 2 root root 4096 5月   2 11:33 b7
drwxr-xr-x 2 root root 4096 5月   2 11:33 be
drwxr-xr-x 2 root root 4096 5月   2 11:33 d1
drwxr-xr-x 2 root root 4096 5月   2 11:33 d6
drwxr-xr-x 2 root root 4096 5月   2 11:33 f7
drwxr-xr-x 2 root root 4096 5月   2 11:33 locks
drwxr-xr-x 2 root root 4096 5月   2 11:33 tempfiles wKiom1NjW26wjq6cAAPS6y_yajU533.jpg





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-18549-1-1.html 上篇帖子: Python-Django中的那些命令 下篇帖子: Linux系统优化脚本 python
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表