Gearman是一套非常优秀的任务分发框架,可以用于分布式计算。现在我来介绍一下gearmand服务的安装启动以及gearman的python 模块的安装以及简单例子。
操作系统:Red Hat 4.4.7-4
- 首先,我们需要安装gearmand,在centos和rhel环境下,我们只需运行以下命令:
yum install gearmand -y
安装完毕之后,我们启动gearmand服务
gearmand -d
- 安装python-gearman
gearman的python模块,地址为:https://pypi.python.org/pypi/gearman/2.0.2
我们可以用以下命令安装(两个命令均可,二选一):
easy_install gearman
pip install gearman
或者通过源码安装:
wget https://pypi.python.org/packages/source/g/gearman/gearman-2.0.2.tar.gz --no-check-certificate
tar zxvf gearman-2.0.2.tar.gz
cd gearman-2.0.2
python setup.py install
这样,我们就完成了python-gearman的安装。
Python安装模块出错(No module named setuptools)解决方法
解决方法:
wget https://bootstrap.pypa.io/ez_setup.py
python ez_setup.py
之后再安装需求安装的命令:
python setup.py install 即可自动安装各种其他模块了
==============================================================================、
下面,列举一个简单的python例子:
首先,我们需要编写一个worker,代码如下:
文件名:work.py
import os
import gearman
import math
class CustomGearmanWorker(gearman.GearmanWorker):
def on_job_execute(self, current_job):
print "Job started"
return super(CustomGearmanWorker, self).on_job_execute(current_job)
def task_callback(gearman_worker, job):
print "work task_callback"
print job.data
return job.data
new_worker = CustomGearmanWorker(['10.0.2.15:4730'])
new_worker.register_task("echo", task_callback)
new_worker.work()
然后,编写client,如下:
文件名:client.py
from gearman import GearmanClient
new_client = GearmanClient(['10.0.2.15:4730'])
current_request = new_client.submit_job('echo', '1111111')
new_result = current_request.result
print new_result
注意上面GearmanClient([‘10.0.2.15:4730’])中的IP地址,需要根据实际启动gearmand服务的IP地址和端口号为准。
然后,我们运行以下命令:
在一个命令终端执行:
python work.py
在另外一个命令终端执行:
python client.py