加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

PYTHON分布式任务系统GEARMAN解析

发布时间:2020-12-17 17:49:43 所属栏目:Python 来源:网络整理
导读:对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! 了解Gearman,请访问gearman官网:http://gearman.org/index.php?id=getting_started Gearman for Python API Doc: http://pythonhosted.org/gearman/ 安装Gearman:
对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 52php.cn的小编两巴掌来看看吧!

了解Gearman,请访问gearman官网:http://gearman.org/index.php?id=getting_started

Gearman for Python API Doc: http://pythonhosted.org/gearman/

安装Gearman:

基础依赖库:

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客户端

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代码:

# @param 分布式任务系统GEARMAN FOR PYTHON初探
# @author 编程之家 52php.cn|512Pic.com 

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()

# End www.52php.cn

python client代码:

# @param 分布式任务系统GEARMAN FOR PYTHON初探
# @author 编程之家 52php.cn|512Pic.com 

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

# End www.52php.cn

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读