前言:

大家是否需要一个强度大点的任务处理框架,比如临时发送大量的通知邮件,需要做大量的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'%ntime.sleep(1)ltime = int(time.time())print ltimetime.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

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

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

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

[root@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

原文:http://rfyiamcool.blog.51cto.com/1030776/1405532

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

https://pythonhosted.org/Jug/tutorial.html

转载于:https://blog.51cto.com/rfyiamcool/1405532

python的分布式任务并行处理框架Jug简单使用相关推荐

  1. python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用

    python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装 安装及简单使用:https://github.com/andymccurdy/ ...

  2. python 系列 03 - 基于scrapy框架的简单爬虫

    文章目录 1. scrapy介绍 2 新建爬虫项目 3 新建蜘蛛文件 4 运行爬虫 5 爬取内容 5.1分析网页结构 5.2 关于Xpath解析 5.3 接着解析电影数据 5.4 下载缩略图 5.5 ...

  3. python增删改查的框架_简单的Django框架增删改查操作

    Django之orm对MysqL数据库的增删改查操作简介: 利用Django中orm来查找数据库中的数据,对数据库进行增.删.改.查: 增:新增数据 # 操作数据库user表新增记录 # 方式1: u ...

  4. python游戏服务器框架_mqant首页、文档和下载 - Golang/python语言开发的分布式游戏服务器框架 - OSCHINA - 中文开源技术交流社区...

    mqant mqant 是一款基于 Golang 语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性的游戏服务器框架,也希望 mqant 未来能够做即 ...

  5. Hive数据分析——Spark是一种基于rdd(弹性数据集)的内存分布式并行处理框架,比于Hadoop将大量的中间结果写入HDFS,Spark避免了中间结果的持久化...

    转自:http://blog.csdn.net/wh_springer/article/details/51842496 近十年来,随着Hadoop生态系统的不断完善,Hadoop早已成为大数据事实上 ...

  6. Python 并行分布式框架 Celery

    Celery 官网:http://www.celeryproject.org Celery 官方文档英文版:http://docs.celeryproject.org/en/latest/index. ...

  7. python ray分布式_分布式框架Ray及RLlib简易理解

    最近阅读了 Ray: A Distributed Framework for Emerging AI Applications RLlib: Abstractions for Distributed ...

  8. python django框架分析_Django框架模型简单介绍与使用分析

    本文实例讲述了Django框架模型简单介绍与使用.分享给大家供大家参考,具体如下: ORM介绍 ORM Object relational mapping 对象关系映射 把面向对象中的类和数据库表一一 ...

  9. flask post json_【python:flask-SocketIO】网络通信框架简单了解

    Flask是一个用python开发的网络应用微框架. http://docs.jinkan.org/docs/flask/​docs.jinkan.org 而flask-SocketIO 为flask ...

  10. python网络通信框架_【python:flask-SocketIO】网络通信框架简单了解

    Flask是一个用python开发的网络应用微框架.http://docs.jinkan.org/docs/flask/​docs.jinkan.org 而flask-SocketIO 为flask应 ...

最新文章

  1. 使用log_format为Nginx服务器设置更详细的日志格式
  2. SylixOS 基于STM32平台的GPIO模仿I2C总线的驱动开发流程
  3. 直播实录 | AlphaGo Zero是如何实现无师自通的?
  4. 【转】dicom通讯的工作方式及dicom标准简介!!
  5. 【gRPC基础知识】快速部署
  6. win10 uwp 如何判断一个对象被移除
  7. TCL嵌入式测试技术在Comware V7系统中的应用
  8. layout中蛇形线和差分线的使用
  9. bmi055六轴传感器获取数据
  10. Large Scale Spectral Clustering with Landmark-Based Representation
  11. nes游戏开发_NES Classic运行Linux,新的0 AD alpha,以及更多游戏新闻
  12. usb接上计算机没反应怎么办,u盘插上去电脑没反应怎么办 u盘插上后无任何反应的解决教程...
  13. 网络测试一般使用这四个命令就可以了
  14. 0-1背包算法python实现
  15. IntelliJ IDEA设置显示内存指示器的几种方法
  16. z80 cpu 机电系统计算机控制,拆解PreComputer 1000计算机:基于可靠的Zilog Z80处理器电路设计方案...
  17. 小游戏之欢乐吃豆人canvas重制版
  18. 顺微电子科技推出基于芯驰D9的核心板
  19. vue实现获取短信验证码
  20. ❤️数据可视化❤️:基于Echarts + GeoJson实现的地图视觉映射散点(气泡)组件【6】 - 贵州省

热门文章

  1. 显示低帧率排查思路记录
  2. linux下proc目录部分说明
  3. html文件 保持在,如何保持.phtml文件的简洁和整洁?
  4. 漫画:什么是B-树?
  5. Netlink 0007 --- 创建实现分析
  6. linux下实现在程序运行时的函数替换(热补丁)
  7. linux内核奇遇记之md源代码解读之十一raid5d
  8. python函数第二次运行报错_(数据科学学习手札54)Python中retry的简单用法
  9. java.lang.UnsupportedClassVersionError : Unsupported major.minor version 52.0
  10. maven内置属性详细说明