分布式处理框架之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数

 

 

 

 

 

转载于:https://www.cnblogs.com/jinjin666/archive/2013/01/29/2881594.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值