编译安装Gearman、python简单测试
2013-06-10 23:47
453 查看
Gearman是开源、轻量级的任务分发程序框架,方便开发分布式的任务处理(计算)程序,Gearman支持多种后端数据的存储。
Gearman有c和java两个版本,支持多种语言的客户端
一、安装依赖库
编译Gearman是必须要有mysql开发库的
二、编译安装
会列出已经支持的数据存储库
编译安装
三、编译中出现一些小问题
最新版的gearmand-0.34无法安装成功,会提示:
但是已经认出MySQL:
限于时间紧迫,暂时使用gearmand-0.33
四、启动gearmand
五、编写测试代码(python)
先安装python-gearman
1、编写任务工作者:worker.py
2、启动worker.py
可以启动多个,分布在不同的机器上
3、编写测试端client.py
4、测试一下
可以看到worker输出信息了
使用体会
1、编写异步的任务分发程序简单方便
2、测试中发现,任务的分发不是很均匀(调度算法不好?)
Gearman有c和java两个版本,支持多种语言的客户端
一、安装依赖库
sudo yum install boost-devel libevent-devel sqlite-devel libuuid-devel
编译Gearman是必须要有mysql开发库的
二、编译安装
./configure --with-mysql=/opt/db/Percona-Server-5.5.21-rel25.0/bin/mysql_config --prefix=/opt/gearmand-0.33
会列出已经支持的数据存储库
* Building with libsqlite3 yes * Building with libdrizzle no * Building with libmemcached no * Building with libpq no * Building with tokyocabinet no * Building with libmysql yes
编译安装
make && make install
三、编译中出现一些小问题
最新版的gearmand-0.34无法安装成功,会提示:
libgearman-server/plugins/queue/mysql/queue.cc:49:25: fatal error: mysql/mysql.h: No such file or directory
但是已经认出MySQL:
checking if MySQL version is >= 5.0... yes checking for mysqld... /opt/db/Percona-Server-5.5.21-rel25.0/bin/mysqld
限于时间紧迫,暂时使用gearmand-0.33
四、启动gearmand
./gearmand -L 127.0.0.1 -p 7003
五、编写测试代码(python)
先安装python-gearman
easy_install gearman
1、编写任务工作者:worker.py
#!/usr/bin/env python2.7 # -*- coding: utf-8 -*- # file: worker.py import os import gearman import math class CustomGearmanWorker(gearman.GearmanWorker): def on_job_execute(self, current_job): print "开始......" print "工作中......" print '结束' return super(CustomGearmanWorker, self).on_job_execute(current_job) def task_callback(gearman_worker, job): print job.data return job.data new_worker = CustomGearmanWorker(['127.0.0.1:7003']) new_worker.register_task("echo", task_callback) new_worker.work()
2、启动worker.py
python worker.py
可以启动多个,分布在不同的机器上
3、编写测试端client.py
#!/usr/bin/env python2.7 # -*- coding: utf-8 -*- # file: client.py from gearman import GearmanClient new_client = GearmanClient(['127.0.0.1:7003']) current_request = new_client.submit_job('echo', 'foo') new_result = current_request.result print new_result
4、测试一下
python client.py
可以看到worker输出信息了
使用体会
1、编写异步的任务分发程序简单方便
2、测试中发现,任务的分发不是很均匀(调度算法不好?)
相关文章推荐
- Python在windows下安装后简单测试问题
- 自定义编译安装python简单笔记。
- window安装python3.5版本和简单的编译使用写一个简单的程序
- 简单快速在Python环境下 安装xgboost ,不需要编译
- linux python 视频设备控制模块 openCV 编译安装与测试
- Greenplum编译安装及简单测试
- 编译和安装linux内核2.6.x,一个简单的内核驱动测试
- centos下编译安装node.js、并测试简单demo
- centos 6.6 下ython 的编译安装和python 编写测试工具Ipython 的编译安装
- DataX的简单编译安装测试
- PODOFO编译之1——CMake安装与简单测试
- 编译和安装linux内核2.6.24,并且写一个简单的内核驱动测试之
- Python PyInstaller 安装方法 及简单的编译exe
- 简单例子测试Ubuntu安装的mysql开发包SDK,附编译选项说明
- PyInstaller 安装方法 及简单的编译exe (python3)
- Ubuntu16.04+python3.5+opencv3.3.1+opencv_contrib编译安装
- iBATIS入门之安装配置与简单测试
- centos 编译安装python2.7.8 带zlib
- 简单编译安装DNS服务器
- 在rhel5/6上编译安装python3.2