To learn about Gearman, please visit gearman official website: gearman.org/
++++++++++++++++++++++++++++++++++++ +++++++++
Install Gearman:
++++++++++++++++++++++++++++++++ ++++++++++
Basic dependency library:
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
++++++++++++++++++++++++++++++ +++++++++++++
Install Gearman Python client
++++++++++++++++++++++++++++ ++++++++++++++++
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
Get the automatic installation directly: easy_install gearman
Start the service: gearmand -d
Start the Worker: gearman -w -f wc -- wc -l &
-w means to start a worker, -f wc means to start a task named wc, -- wc -l means that this task is to do wc -l to count the number of rows.
Start Client: gearman -f wc < /etc/passwd
++++++++++++++++++++++++++++++++++ +++++++++++
python work code:
++++++++++++++++++++++++++++++ +++++++++++++
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 code:
++++++++++++++++++++++++++++++ ++++++++++++
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