了解Gearman,请访问gearman官网:http://gearman.org/index.php?id=getting_started
Gearman for Python API Doc: http://pythonhosted.org/gearman/
++++++++++++++++++++++++++++++++++++++++++++
安装Gearman:
++++++++++++++++++++++++++++++++++++++++++++
基础依赖库:
1
2
3
4
5
6
7
|
yum install boost-devel libevent-devel sqlite-devel libuuid-devel wget https: //launchpad .net /gearmand/trunk/0 .33/+download /gearmand-0 .33. tar .gz tar xzvf gearmand-0.33. tar .gz cd gearmand-0.33 . /configure make make install |
++++++++++++++++++++++++++++++++++++++++++++
安装Gearman Python客户端
++++++++++++++++++++++++++++++++++++++++++++
1
2
3
|
wget http: //pypi .python.org /packages/source/g/gearman/gearman-2 .0.2. tar .gz #md5=3847f15b763dc680bc672a610b77c7a7 tar xvzf gearman-2.0.2. tar .gz python setup.py install |
获取直接用自动安装: easy_install gearman
启动服务:gearmand -d
启动Worker:gearman -w -f wc — wc -l &
-w 代表启动的是worker,-f wc 代表启动一个task名字为wc, — wc -l表示这个task是做wc -l 统计行数。
启动Client:gearman -f wc < /etc/passwd
++++++++++++++++++++++++++++++++++++++++++++
python work代码:
++++++++++++++++++++++++++++++++++++++++++++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import os import gearman import math class MyGearmanWorker(gearman.GearmanWorker): def on_job_execute( self , current_job): print "Job started" return super (MyGearmanWorker, self ).on_job_execute(current_job) def task_callback(gearman_worker, gearman_job): print gearman_job.data return gearman_job.data my_worker = MyGearmanWorker([ '192.168.0.75:4730' ]) my_worker.register_task( "echo" , task_callback) my_worker.work() |
++++++++++++++++++++++++++++++++++++++++++++
python client代码:
++++++++++++++++++++++++++++++++++++++++++++
1
2
3
4
5
|
from gearman import GearmanClient gearman_client = GearmanClient([ '192.168.0.75:4730' ]) gearman_request = gearman_client.submit_job( 'echo' , 'foo' ) result_data = gearman_request.result print result_data |
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容