python 任务管理引擎_GitHub - Hugh-wong/hydra: python多进程任务引擎
Hydra
Hydra是基于生产者-消费者模型的一个多进程任务引擎。
海德拉是希腊神话中的九头蛇怪,砍掉一个头,马上会再生出两个,最后被海格力斯所打败。
命名为海德拉的原因很简单,因为语言是python,有多个头的python,自然就是传说中的九头蛇啦。
特性
无第三方依赖库,轻量级
运行效率高,充分利用多核
简单易于上手
依赖
python 2.7
运行环境
windows
ubuntu(其它*unix没有测试)
特别说明,不支持mac os x,因为使用到了multiprocessing模块中的queue,其中一个方法,qsize,mac os x并没有实现。
qsize()
Return the approximate size of the queue. Because of multithreading/multiprocessing semantics, this number is not reliable.
Note that this may raise NotImplementedError on Unix platforms like Mac OS X where sem_getvalue() is not implemented.
安装
git clone https://github.com/Hugh-wong/hydra.git
如何应用
定义一个取任务的函数
def retrieve_items(need_count):
pass
该函数从文件/数据库/缓存等取出来数据(注意如果开启多个hydra,则要注意保证一定的锁机制)。
取多少数据,由need_count指定,一般不超过给定的进程数。
定义任务的执行函数
def consume(item):
pass
该函数从Broker(海德拉使用multiprocessing.Queue作为中介者)中取到item,然后消费该数据
执行后的结果呢?
该结果通常由consume来实现,通常是写回到数据库/缓存中去。
例子
参考test.py,这个例子就是随机给几个数字,然后求素数之和。
其它特性 && 说明
一、任务时间控制,可以很方便控制任务执行时间。
二、支持多任务,可以根据机器硬件,配置几个不同的任务。
三、退出机制较完善,任务退出时,首先等待任务执行完毕后(或等待超时)时退出,全部任务都完毕后方可退出。
其它说明:
死循环问题,由于Manager写的是While True,这里可能会持续跑N天,但是特别要提出的一点是Mysql的不完善,在我所应用的项目中,超过8个小时,
mysql就会出现mysql server has gone away的问题,而mongodb则状态良好。
所以尽量不要使用mysql作任务存储,可以使用mongodb或者redis。实在不行,建议将死循环改成一定的时候,结合supervisor作自动重启也是可以的。
使用supervisor管理
supervisor是进程守护利器,自然可以管理hydra,这里要注意一下配置:
killasgroup = true
stopasgroup = true
stopwaitsecs=10
python 任务管理引擎_GitHub - Hugh-wong/hydra: python多进程任务引擎相关推荐
- python网页结构分析_GitHub - Vogdhsaj/data_analysis: 基于Python的南京二手房数据采集及可视化分析...
基于Python的南京二手房数据采集及可视化分析 1 内容简介 首先通过爬虫采集链家网上所有南京二手房的房源数据,并对采集到的数据进行清洗:然后,对清洗后的数据进行可视化分析,探索隐藏在大量数据背后的 ...
- python语法助手_GitHub - xingxiaohui/onmyoji_helper: 基于python开发的阴阳师护肝助手
onmyoji_helper 基本介绍 自去年四月入坑阴阳师以来,断断续续的玩了一年半的时间了.今年七月脑抽退坑把号卖了,十月以后手痒难耐又下了回来,但当初的账号已经不在了.新账号没有御魂没有式神,重 ...
- python动物语音识别_GitHub - bestpower/Speech_Recognition_Test: 利用Python+TensorFlow实现语音识别...
Speech_Recognition_Test 中文语音识别 1.项目运行环境 Windows7x64 Pycharm 2018.2.4 Python 3.6.2 独立显卡 GTX1050Ti 2.项 ...
- python进阶中文版_GitHub - kaneg/interpy-zh: 《Python进阶》(Intermediate Python 中文版)...
Python进阶 <Python进阶>是<Intermediate Python>的中文译本, 谨以此献给进击的 Python 和 Python 程序员们! 快速阅读传送门 可 ...
- python量化投资培训清华大学深研院_GitHub - CatsJuice/quantitative-investment-learning: 使用Python进行量化投资的学习报告...
quantitative-investment-learning 使用Python进行量化投资的学习报告 Python量化投资学习报告 CatsJuice 编辑于 2019-4-26 上一次更新: 2 ...
- python计算商品总价_GitHub - ideaOzy/data_analysis: 基于Python的南京二手房数据采集及可视化分析...
基于Python的南京二手房数据采集及可视化分析 1 内容简介 首先通过爬虫采集链家网上所有南京二手房的房源数据,并对采集到的数据进行清洗:然后,对清洗后的数据进行可视化分析,探索隐藏在大量数据背后的 ...
- python医学数据挖掘_GitHub - SSSzhangSSS/Python-Data-mining-Tutorial: Python数据挖掘教程
Python数据挖掘教程 作者 : 长行 说明 : 本教程以9周的数据挖掘教程为主,每周包括5天的知识学习和2天的案例实现. 以周为阶段,每周包括5天的知识内容(Day).1天的案例实现(Exampl ...
- 梦幻西游python验证成语_GitHub - rowliner/mhxy: tensorflow实践:梦幻西游人物弹窗识别...
mhxy tensorflow实践:梦幻西游人物弹窗识别 环境描述 C:\Users\SF>ver Microsoft Windows [版本 10.0.18363.720] C:\Users\ ...
- 数据清洗python实现箱线图_GitHub - nonefirst/data_analysis: 基于Python的南京二手房数据采集及可视化分析...
基于Python的南京二手房数据采集及可视化分析 1 内容简介 首先通过爬虫采集链家网上所有南京二手房的房源数据,并对采集到的数据进行清洗:然后,对清洗后的数据进行可视化分析,探索隐藏在大量数据背后的 ...
最新文章
- html表单标签怎么使用,HTML的表单标签使用
- linux tomcat 日志路径,linux日志文件在哪 linux安装tomcat
- IOS开发报错之Undefined symbols for architecture armv6
- Python开发【第一篇】:初识Python
- 霍纳法树形流图中处理机p个数_2009系统结构试卷答案
- 运维人员日常工作(转自老男孩)
- win7系统字体模糊发虚不清晰的解决方法
- 使用Python开发小说下载器,不再为下载小说而发愁 #华为云·寻找黑马程序员#
- 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(一)(转)
- oracle之三手工不完全恢复
- JavaScript开发工具--Aptana
- X86汇编语言从实模式到保护模式05:循环、批量传送和条件转移
- CS224N笔记——深入GRU和LSTM
- 【机器学习笔记之八】使用朴素贝叶斯进行文本的分类
- kubeadm-deployment
- win7计算机远程桌面连接,教您win7远程桌面连接
- 【WPS技能】xlsx表格根据单元格的值改变行背景色
- 1260Completed String
- Composure视口的材质丢失?
- 贝壳找房《2018城市居住报告》:新一线租房量持续攀升