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多进程任务引擎相关推荐

  1. python网页结构分析_GitHub - Vogdhsaj/data_analysis: 基于Python的南京二手房数据采集及可视化分析...

    基于Python的南京二手房数据采集及可视化分析 1 内容简介 首先通过爬虫采集链家网上所有南京二手房的房源数据,并对采集到的数据进行清洗:然后,对清洗后的数据进行可视化分析,探索隐藏在大量数据背后的 ...

  2. python语法助手_GitHub - xingxiaohui/onmyoji_helper: 基于python开发的阴阳师护肝助手

    onmyoji_helper 基本介绍 自去年四月入坑阴阳师以来,断断续续的玩了一年半的时间了.今年七月脑抽退坑把号卖了,十月以后手痒难耐又下了回来,但当初的账号已经不在了.新账号没有御魂没有式神,重 ...

  3. python动物语音识别_GitHub - bestpower/Speech_Recognition_Test: 利用Python+TensorFlow实现语音识别...

    Speech_Recognition_Test 中文语音识别 1.项目运行环境 Windows7x64 Pycharm 2018.2.4 Python 3.6.2 独立显卡 GTX1050Ti 2.项 ...

  4. python进阶中文版_GitHub - kaneg/interpy-zh: 《Python进阶》(Intermediate Python 中文版)...

    Python进阶 <Python进阶>是<Intermediate Python>的中文译本, 谨以此献给进击的 Python 和 Python 程序员们! 快速阅读传送门 可 ...

  5. python量化投资培训清华大学深研院_GitHub - CatsJuice/quantitative-investment-learning: 使用Python进行量化投资的学习报告...

    quantitative-investment-learning 使用Python进行量化投资的学习报告 Python量化投资学习报告 CatsJuice 编辑于 2019-4-26 上一次更新: 2 ...

  6. python计算商品总价_GitHub - ideaOzy/data_analysis: 基于Python的南京二手房数据采集及可视化分析...

    基于Python的南京二手房数据采集及可视化分析 1 内容简介 首先通过爬虫采集链家网上所有南京二手房的房源数据,并对采集到的数据进行清洗:然后,对清洗后的数据进行可视化分析,探索隐藏在大量数据背后的 ...

  7. python医学数据挖掘_GitHub - SSSzhangSSS/Python-Data-mining-Tutorial: Python数据挖掘教程

    Python数据挖掘教程 作者 : 长行 说明 : 本教程以9周的数据挖掘教程为主,每周包括5天的知识学习和2天的案例实现. 以周为阶段,每周包括5天的知识内容(Day).1天的案例实现(Exampl ...

  8. 梦幻西游python验证成语_GitHub - rowliner/mhxy: tensorflow实践:梦幻西游人物弹窗识别...

    mhxy tensorflow实践:梦幻西游人物弹窗识别 环境描述 C:\Users\SF>ver Microsoft Windows [版本 10.0.18363.720] C:\Users\ ...

  9. 数据清洗python实现箱线图_GitHub - nonefirst/data_analysis: 基于Python的南京二手房数据采集及可视化分析...

    基于Python的南京二手房数据采集及可视化分析 1 内容简介 首先通过爬虫采集链家网上所有南京二手房的房源数据,并对采集到的数据进行清洗:然后,对清洗后的数据进行可视化分析,探索隐藏在大量数据背后的 ...

最新文章

  1. html表单标签怎么使用,HTML的表单标签使用
  2. linux tomcat 日志路径,linux日志文件在哪 linux安装tomcat
  3. IOS开发报错之Undefined symbols for architecture armv6
  4. Python开发【第一篇】:初识Python
  5. 霍纳法树形流图中处理机p个数_2009系统结构试卷答案
  6. 运维人员日常工作(转自老男孩)
  7. win7系统字体模糊发虚不清晰的解决方法
  8. 使用Python开发小说下载器,不再为下载小说而发愁 #华为云·寻找黑马程序员#
  9. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(一)(转)
  10. oracle之三手工不完全恢复
  11. JavaScript开发工具--Aptana
  12. X86汇编语言从实模式到保护模式05:循环、批量传送和条件转移
  13. CS224N笔记——深入GRU和LSTM
  14. 【机器学习笔记之八】使用朴素贝叶斯进行文本的分类
  15. kubeadm-deployment
  16. win7计算机远程桌面连接,教您win7远程桌面连接
  17. 【WPS技能】xlsx表格根据单元格的值改变行背景色
  18. 1260Completed String
  19. Composure视口的材质丢失?
  20. 贝壳找房《2018城市居住报告》:新一线租房量持续攀升

热门文章

  1. 【更新】Parasoft Jtest更新至v10.4.1,实现代码覆盖率目标!
  2. RT-Thread Studio入门(4)— 使用邮箱发送按键状态
  3. html中引号怎么打,双引号怎么打出来
  4. 推荐一款码云上的开源ERP(JAVA版)
  5. 基于Multisim仿真数字秒表
  6. NET TCP 协议
  7. Linux服务器定时运行python项目
  8. 计算机专业python毕业设计题目_计算机专业毕业设计选题总结
  9. 如何获得ditto的数据
  10. Excel 2010 VBA 入门 105 将工作表数据批量导出为图片