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

简介:

前言:

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


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


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



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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#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


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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[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


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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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
1399001637
     Executed      Loaded  Task name                                                                                              
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            9            3   s.is_prime                                                                                             
......................................................................................................................................
            9            3   Total



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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[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

wKiom1NjW26wjq6cAAPS6y_yajU533.jpg



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


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






 本文转自 rfyiamcool 51CTO博客,原文链接:http://blog.51cto.com/rfyiamcool/1405532,如需转载请自行联系原作者

相关文章
|
11天前
|
存储 监控 数据可视化
常见的分布式定时任务调度框架
分布式定时任务调度框架用于在分布式系统中管理和调度定时任务,确保任务按预定时间和频率执行。其核心概念包括Job(任务)、Trigger(触发器)、Executor(执行器)和Scheduler(调度器)。这类框架应具备任务管理、任务监控、良好的可扩展性和高可用性等功能。常用的Java生态中的分布式任务调度框架有Quartz Scheduler、ElasticJob和XXL-JOB。
196 66
|
1天前
|
分布式计算 DataWorks 大数据
分布式Python计算服务MaxFrame测评
一文带你入门分布式Python计算服务MaxFrame
43 22
分布式Python计算服务MaxFrame测评
|
4天前
|
数据采集 人工智能 分布式计算
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
阿里云推出的MaxFrame是链接大数据与AI的分布式Python计算框架,提供类似Pandas的操作接口和分布式处理能力。本文从部署、功能验证到实际场景全面评测MaxFrame,涵盖分布式Pandas操作、大语言模型数据预处理及企业级应用。结果显示,MaxFrame在处理大规模数据时性能显著提升,代码兼容性强,适合从数据清洗到训练数据生成的全链路场景...
17 5
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
|
5天前
|
数据采集 人工智能 分布式计算
🚀 MaxFrame 产品深度体验评测:Python 分布式计算的未来
在数据驱动的时代,大数据分析和AI模型训练对数据预处理的效率要求极高。传统的Pandas工具在小数据集下表现出色,但面对大规模数据时力不从心。阿里云推出的Python分布式计算框架MaxFrame,以“Pandas风格”为核心设计理念,旨在降低分布式计算门槛,同时支持超大规模数据处理。MaxFrame不仅保留了Pandas的操作习惯,还通过底层优化实现了高效的分布式调度、内存管理和容错机制,并深度集成阿里云大数据生态。本文将通过实践评测,全面解析MaxFrame的能力与价值,展示其在大数据和AI场景中的卓越表现。
18 4
🚀 MaxFrame 产品深度体验评测:Python 分布式计算的未来
|
22小时前
|
存储 安全 数据可视化
用Python实现简单的任务自动化
本文介绍如何使用Python实现任务自动化,提高效率和准确性。通过三个实用案例展示:1. 使用`smtplib`和`schedule`库自动发送邮件提醒;2. 利用`shutil`和`os`库自动备份文件;3. 借助`requests`库自动下载网页内容。每个案例包含详细代码和解释,并附带注意事项。掌握这些技能有助于个人和企业优化流程、节约成本。
20 3
|
22小时前
|
分布式计算 数据处理 MaxCompute
云产品评测|分布式Python计算服务MaxFrame
云产品评测|分布式Python计算服务MaxFrame
16 2
|
5天前
|
人工智能 分布式计算 数据处理
有奖评测,基于分布式 Python 计算服务 MaxFrame 进行数据处理
阿里云MaxCompute MaxFrame推出分布式Python计算服务MaxFrame评测活动,助力开发者高效完成大规模数据处理、可视化探索及ML/AI开发。活动时间为2024年12月17日至2025年1月31日,参与者需体验MaxFrame并发布评测文章,有机会赢取精美礼品。
|
3天前
|
安全 前端开发 数据库
Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
|
17天前
|
人工智能 分布式计算 数据处理
云产品评测:MaxFrame — 分布式Python计算服务的最佳实践与体验
阿里云推出的MaxFrame是一款高性能分布式计算平台,专为大规模数据处理和AI应用设计。它提供了强大的Python编程接口,支持分布式Pandas操作,显著提升数据处理速度(3-5倍)。MaxFrame在大语言模型数据处理中表现出色,具备高效内存管理和任务调度能力。然而,在开通流程、API文档及功能集成度方面仍有改进空间。总体而言,MaxFrame在易用性和计算效率上具有明显优势,但在开放性和社区支持方面有待加强。
44 9
|
18天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
57 2