分布式处理框架之gearman

gearman 作为一个分布式的处理框架,支持多种语言,能非常方便的进行任务的分发和处理。

下面是gearman的工作流程图:

可以看到,gearman分为worker,client,job server三个部分。worker是具体的任务处理,client进行任务的提交,由gearman提供的job server来进行任务的分发。其中Worker 和 Client的API都提供多种语言的调用。

安装方式:

1.安装job-server

debian: apt-get install gearman-job-server

centos:yum install gearmand-server

2.安装client server的python api

easy_install gearman

3.简单的demo(从网上copy的 嘿嘿)

worker.py

 1 #!/usr/bin/env python2.7
 2 # -*- coding: utf-8 -*-
 3 # file: worker.py
 4 
 5 import os
 6 import gearman
 7 import math
 8 
 9 class CustomGearmanWorker(gearman.GearmanWorker):
10     def on_job_execute(self, current_job):
11         print "开始......"
12         print "工作中......"
13         print '结束'
14 
15         return super(CustomGearmanWorker, self).on_job_execute(current_job)
16 
17 def task_callback(gearman_worker, job):
18     print job.data
19     return job.data
20 
21 new_worker = CustomGearmanWorker(['127.0.0.1:4730','0.0.0.0:4730'])
22 new_worker.register_task("echo", task_callback)
23 new_worker.work()

client.py

 1 #!/usr/bin/env python2.7
 2 # -*- coding: utf-8 -*-
 3 # file: client.py
 4 
 5 from gearman import GearmanClient
 6 
 7 new_client = GearmanClient(['127.0.0.1:4730'])
 8 current_request = new_client.submit_job('echo', 'foo')
 9 new_result = current_request.result
10 print new_result

ps:worker.py中注册的多个job server 直接可以使用list

4.查看状态

telnet 127.0.0.1 4730

status      状态

workers    已注册的workers数

 

 

 

 

 

posted on 2013-01-29 15:59  浪迹天涯cc  阅读(381)  评论(0编辑  收藏  举报

导航