博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python的分布式任务并行处理框架Jug简单使用
阅读量:6368 次
发布时间:2019-06-23

本文共 3020 字,大约阅读时间需要 10 分钟。

前言:

       大家是否需要一个强度大点的任务处理框架,比如临时发送大量的通知邮件,需要做大量的cpu计算,需要做大量的部署,需要做xxxx。 好嘞,下面看看jug的介绍及使用文档。

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

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

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

#coding:utf-8#from xiaorui.ccfrom jug import TaskGeneratorimport timeimport os,sys@TaskGeneratordef is_prime(n):    print '现在进行的是任务: %s'%n    time.sleep(1)    ltime = int(time.time())    print ltime    time.sleep(1)    return Trueplist=[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

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

[root@67 var]# jug execute s.pyok现在进行的是任务: 11399001613现在进行的是任务: 21399001615现在进行的是任务: 31399001617现在进行的是任务: 41399001619现在进行的是任务: 61399001621现在进行的是任务: 81399001623现在进行的是任务: 101399001625现在进行的是任务: w21399001627现在进行的是任务: w41399001629现在进行的是任务: w61399001632现在进行的是任务: d21399001634现在进行的是任务: d41399001636现在进行的是任务: d6

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

xiaorui.cc[root@110 var]# jug execute s.pyok现在进行的是任务: 51399001620现在进行的是任务: 71399001623现在进行的是任务: 91399001625现在进行的是任务: w11399001627现在进行的是任务: w31399001629现在进行的是任务: w51399001631现在进行的是任务: d11399001633现在进行的是任务: d31399001635现在进行的是任务: d51399001637    Executed      Loaded  Task name                                                                                               --------------------------------------------------------------------------------------------------------------------------------------           9           3  s.is_prime                                                                                              ......................................................................................................................................           9           3  Total

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

[root@67 var]# ll s.jugdata/总用量 96drwxr-xr-x 2 root root 4096 5月   2 11:33 0bdrwxr-xr-x 2 root root 4096 5月   2 11:33 12drwxr-xr-x 2 root root 4096 5月   2 11:33 14drwxr-xr-x 2 root root 4096 5月   2 11:33 1ddrwxr-xr-x 2 root root 4096 5月   2 11:33 25drwxr-xr-x 2 root root 4096 5月   2 11:33 4ddrwxr-xr-x 2 root root 4096 5月   2 11:33 4fdrwxr-xr-x 2 root root 4096 5月   2 11:33 58drwxr-xr-x 2 root root 4096 5月   2 11:33 59drwxr-xr-x 2 root root 4096 5月   2 11:33 6fdrwxr-xr-x 2 root root 4096 5月   2 11:33 75drwxr-xr-x 2 root root 4096 5月   2 11:33 79drwxr-xr-x 2 root root 4096 5月   2 11:33 7cdrwxr-xr-x 2 root root 4096 5月   2 11:33 8ddrwxr-xr-x 2 root root 4096 5月   2 11:33 96drwxr-xr-x 2 root root 4096 5月   2 11:33 a7drwxr-xr-x 2 root root 4096 5月   2 11:33 a9drwxr-xr-x 2 root root 4096 5月   2 11:33 b7drwxr-xr-x 2 root root 4096 5月   2 11:33 bedrwxr-xr-x 2 root root 4096 5月   2 11:33 d1drwxr-xr-x 2 root root 4096 5月   2 11:33 d6drwxr-xr-x 2 root root 4096 5月   2 11:33 f7drwxr-xr-x 2 root root 4096 5月   2 11:33 locksdrwxr-xr-x 2 root root 4096 5月   2 11:33 tempfiles

原文:

里介绍的比较简单,想看详细的,请到官网看:

转载地址:http://xzema.baihongyu.com/

你可能感兴趣的文章
前端MVC学习总结(四)——NodeJS+MongoDB+AngularJS+Bootstrap书店示例
查看>>
Myeclipse快捷键集合
查看>>
linux安装ftp
查看>>
[转]解读ASP.NET 5 & MVC6系列(8):Session与Caching
查看>>
js正则匹配中文
查看>>
中介者模式(Mediator)
查看>>
Entity Framework 数据生成选项DatabaseGenerated
查看>>
jquery 兼容的滚轮事件
查看>>
模板小例子
查看>>
告诉你html5比普通html多了哪些东西?
查看>>
十倍交叉验证 10-fold cross-validation
查看>>
Windows无法删除文件 提示找不到该项目怎么办
查看>>
js 数组
查看>>
R语言中的字符串处理函数
查看>>
平方和公式
查看>>
【Unity游戏开发】浅谈 NGUI 中的 UIRoot、UIPanel、UICamera 组件
查看>>
内存模型
查看>>
table边框设置
查看>>
IOS开发之实现App消息推送(最新)
查看>>
C++ 资源管理之 RAII
查看>>