OpenWorker,欢迎参与:https://github.com/supergis/OpenWorker。
OpenWorker是基于Python的并行处理框架,将集成Celery、Flower、Jobtastic和Rodeo工程,可以通过控制台或Web进行管理、提交任务等。
Celery 是一个简单灵活的Python并行处理框架,但是相关的几个工程需要独自安装和配置,给小白的使用带来困难。OpenWorker将这几个工程放到一起, 并增加了统一的安装脚本,让部署和安装、运行都更加方便。OpenWorker仅仅集成这些资源让数据研究者更易于使用,而不是替代原来的工程。由于这几 个项目还在快速发展,因此也编写合并和更新的脚本,实现与原作者的代码库保持一致。
1、并行处理框架:
Celery:http://www.celeryproject.org/
执行任务的分发和调度,使用消息总线进行通讯。
关于Celery的入门教程及参考:http://my.oschina.net/u/2306127/blog/420833
2、Web管理控制台:
Flower:https://github.com/mher/flower
在远程通过Web界面监视和管理任务执行情况。
3、任务进度通知:
Jobtastic:http://policystat.github.io/jobtastic/
为长时间运行的任务提供进度通知的Celery扩展库。
4、Web上Python控制台:
Rodeo:https://github.com/yhat/rodeo
可以在Web浏览器编写和执行Python代码,支持交互控制台,非常适合于探索式编程和数据研究。
快速安装脚本:
mkdir ./openworker echo "=============================================" echo "install rodeo,remote web based python console..." git clone cd rodeo sudo python3 setup.py install cd .. echo "usage:" echo " rodeo ." echo "=============================================" echo "install celery, parallel python exec-engine ..." #celery sudo pip3 install celery echo "Usage:" echo " celery -A tasks worker --loglevel=info" echo "=============================================" echo "install flower ... sudo pip install flower echo "If want latest version,install use:" echo "sudo pip install https://github.com/mher/flower/zipball/master" echo "Or get source code:" echo "git clone https://github.com/mher/flower.git" echo "Usage:" echo "1: flower --port=5555" echo "2: celery flower -A proj --address=127.0.0.1 --port=5555" echo "3: celery flower -A proj --broker=amqp://guest:[email protected]:5672//" echo "=============================================" echo "install jobtastic-Job status feedback tool..." sudo pip3 install jobtastic echo "If you want latest version,install the source." echo "git clone echo "cd jobtastic && sudo python3 setup.py install && cd .." echo "" echo "===OpenWorker Dependence Installed.======="
启动rodeo服务后,可以远程运行python脚本,再去启动Celery相关的python脚本,执行并行计算服务的操作。
celery已经与django等进行了整合,可以直接作为并行服务器运行一个自行开发的worker。