python的分布式任务并行处理框架Jug简单使用
前言:
大家是否需要一个强度大点的任务处理框架,比如临时发送大量的通知邮件,需要做大量的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简单使用相关推荐
- python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用
python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装 安装及简单使用:https://github.com/andymccurdy/ ...
- python 系列 03 - 基于scrapy框架的简单爬虫
文章目录 1. scrapy介绍 2 新建爬虫项目 3 新建蜘蛛文件 4 运行爬虫 5 爬取内容 5.1分析网页结构 5.2 关于Xpath解析 5.3 接着解析电影数据 5.4 下载缩略图 5.5 ...
- python增删改查的框架_简单的Django框架增删改查操作
Django之orm对MysqL数据库的增删改查操作简介: 利用Django中orm来查找数据库中的数据,对数据库进行增.删.改.查: 增:新增数据 # 操作数据库user表新增记录 # 方式1: u ...
- python游戏服务器框架_mqant首页、文档和下载 - Golang/python语言开发的分布式游戏服务器框架 - OSCHINA - 中文开源技术交流社区...
mqant mqant 是一款基于 Golang 语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性的游戏服务器框架,也希望 mqant 未来能够做即 ...
- Hive数据分析——Spark是一种基于rdd(弹性数据集)的内存分布式并行处理框架,比于Hadoop将大量的中间结果写入HDFS,Spark避免了中间结果的持久化...
转自:http://blog.csdn.net/wh_springer/article/details/51842496 近十年来,随着Hadoop生态系统的不断完善,Hadoop早已成为大数据事实上 ...
- Python 并行分布式框架 Celery
Celery 官网:http://www.celeryproject.org Celery 官方文档英文版:http://docs.celeryproject.org/en/latest/index. ...
- python ray分布式_分布式框架Ray及RLlib简易理解
最近阅读了 Ray: A Distributed Framework for Emerging AI Applications RLlib: Abstractions for Distributed ...
- python django框架分析_Django框架模型简单介绍与使用分析
本文实例讲述了Django框架模型简单介绍与使用.分享给大家供大家参考,具体如下: ORM介绍 ORM Object relational mapping 对象关系映射 把面向对象中的类和数据库表一一 ...
- flask post json_【python:flask-SocketIO】网络通信框架简单了解
Flask是一个用python开发的网络应用微框架. http://docs.jinkan.org/docs/flask/docs.jinkan.org 而flask-SocketIO 为flask ...
- python网络通信框架_【python:flask-SocketIO】网络通信框架简单了解
Flask是一个用python开发的网络应用微框架.http://docs.jinkan.org/docs/flask/docs.jinkan.org 而flask-SocketIO 为flask应 ...
最新文章
- 使用log_format为Nginx服务器设置更详细的日志格式
- SylixOS 基于STM32平台的GPIO模仿I2C总线的驱动开发流程
- 直播实录 | AlphaGo Zero是如何实现无师自通的?
- 【转】dicom通讯的工作方式及dicom标准简介!!
- 【gRPC基础知识】快速部署
- win10 uwp 如何判断一个对象被移除
- TCL嵌入式测试技术在Comware V7系统中的应用
- layout中蛇形线和差分线的使用
- bmi055六轴传感器获取数据
- Large Scale Spectral Clustering with Landmark-Based Representation
- nes游戏开发_NES Classic运行Linux,新的0 AD alpha,以及更多游戏新闻
- usb接上计算机没反应怎么办,u盘插上去电脑没反应怎么办 u盘插上后无任何反应的解决教程...
- 网络测试一般使用这四个命令就可以了
- 0-1背包算法python实现
- IntelliJ IDEA设置显示内存指示器的几种方法
- z80 cpu 机电系统计算机控制,拆解PreComputer 1000计算机:基于可靠的Zilog Z80处理器电路设计方案...
- 小游戏之欢乐吃豆人canvas重制版
- 顺微电子科技推出基于芯驰D9的核心板
- vue实现获取短信验证码
- ❤️数据可视化❤️:基于Echarts + GeoJson实现的地图视觉映射散点(气泡)组件【6】 - 贵州省
热门文章
- 显示低帧率排查思路记录
- linux下proc目录部分说明
- html文件 保持在,如何保持.phtml文件的简洁和整洁?
- 漫画:什么是B-树?
- Netlink 0007 --- 创建实现分析
- linux下实现在程序运行时的函数替换(热补丁)
- linux内核奇遇记之md源代码解读之十一raid5d
- python函数第二次运行报错_(数据科学学习手札54)Python中retry的简单用法
- java.lang.UnsupportedClassVersionError : Unsupported major.minor version 52.0
- maven内置属性详细说明