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

优质内容筛选与推荐>>
1、Merge Two Sorted Lists
2、怎样选择相机
3、JAVA 11(多线程)
4、数组和矩阵的问题转圈打印数组
5、创业者的10个生产力咒语


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn