============================================================================
原創作品,允許轉載。轉載時請務必以超鏈接形式標明原始出處、以及本聲明。
請註明轉自:http://yunjianfei.iteye.com/blog/
============================================================================
Gearman是一套非常優秀的任務分發框架,可以用於分佈式計算。現在我來介紹一下gearmand服務的安裝啓動以及gearman的python 模塊的安裝以及簡單例子。
操作系統:rnel 5.7
1. 首先,我們需要安裝gearmand,在centos和rhel環境下,我們只需運行以下命令:
注意:如果不希望通過yum的方式來安裝gearmand,可以參照我的另一個帖子,通過源碼編譯安裝,地址爲:http://yunjianfei.iteye.com/blog/2017078
安裝完畢之後,我們啓動gearmand服務
2. 安裝python-gearman
gearman的python模塊,地址爲:https://pypi.python.org/pypi/gearman/2.0.2
我們可以用以下命令安裝(兩個命令均可,二選一):
pip install gearman
或者通過源碼安裝:
這樣,我們就完成了python-gearman的安裝。
==============================================================================、
下面,列舉一個簡單的python例子:
首先,我們需要編寫一個worker,代碼如下:
文件名:echoWorker.py
#!/usr/bin/env python
import os
import gearman
import math
class MyGearmanWorker(gearman.GearmanWorker):
def on_job_execute(self, current_job):
print "Job started"
print "===================\n"
return super(MyGearmanWorker, self).on_job_execute(current_job)
def task_callback(gearman_worker, gearman_job):
print gearman_job.data
print "-----------\n"
return gearman_job.data
my_worker = MyGearmanWorker(['10.22.10.47:4730'])
my_worker.register_task("echo", task_callback)
my_worker.work()
然後,編寫client,如下:
文件名:echoClient.py
#!/usr/bin/env python2.7
from gearman import GearmanClient
gearman_client = GearmanClient(['192.168.10.11:4730'])
gearman_request = gearman_client.submit_job('echo', 'test gearman')
result_data = gearman_request.result
print result_data
注意上面GearmanClient(['192.168.10.11:4730'])中的IP地址,需要根據實際啓動gearmand服務的IP地址和端口號爲準。
然後,我們運行以下命令:
python echoClient.py
即可看到輸出。
關於python-gearman的更多文檔信息,可以參照:http://pythonhosted.org//gearman/