gearman的安装启动及python API使用实例


Posted in Python onJuly 08, 2014

本文讲述了gearman的安装启动及python API使用实例,对于网站建设及服务器维护来说非常有用!

一、概述:

Gearman是一款非常优秀的任务分发框架,可以用于分布式计算。具体的gearmand服务的安装启动及gearman的python 模块的安装以及简单示例如下:
 
操作系统:rnel 5.7

1. 首先,我们需要安装gearmand,在centos和rhel环境下,我们只需运行以下命令:

yum install gearmand -y
 
注意:如果不希望通过yum的方式来安装gearmand,可以通过源码编译安装,具体安装方法可以参考:https://3water.com/article/51999.htm

安装完毕之后,就可以启动gearmand服务:

gearmand -p 4730 -L 10.22.10.90 --log-file=/tmp/gearmand-4730.log --pid-file=/tmp/gearmand-4730.pid -d

2. 安装python-gearman

gearman的python模块,下载地址为:https://pypi.python.org/pypi/gearman/2.0.2

我们可以用以下命令安装(两个命令均可,二选一):

easy_install gearman
pip install gearman

或者也可以通过源码安装:

wget https://pypi.python.org/packages/source/g/gearman/gearman-2.0.2.tar.gz --no-check-certificate
tar zxvf gearman-2.0.2.tar.gz 
cd gearman-2.0.2 
python setup.py install

这样,我们就完成了python-gearman的安装。

二、使用示例:

下面,列举一个简单的python例子:
首先,我们需要编写一个worker,代码如下:

1.文件名:echoWorker.py

#!/usr/bin/env python 
import os 
import gearman 
import math 
class MyGearmanWorker(gearman.GearmanWorker): 
  def on_job_execute(self, current_job): 
    print "Job started" 
    print "===================\n" 
    return super(MyGearmanWorker, self).on_job_execute(current_job) 
def task_callback(gearman_worker, gearman_job): 
  print gearman_job.data 
  print "-----------\n" 
  return gearman_job.data 
my_worker = MyGearmanWorker(['10.22.10.47:4730']) 
my_worker.register_task("echo", task_callback) 
my_worker.work()

2.编写client,如下:
文件名:echoClient.py

#!/usr/bin/env python2.7 
from gearman import GearmanClient 
gearman_client = GearmanClient(['192.168.12.34:4730']) 
gearman_request = gearman_client.submit_job('echo', 'test gearman') 
result_data = gearman_request.result 
print result_data

注意上面GearmanClient(['192.168.12.34:4730'])中的IP地址,需要根据实际启动gearmand服务的IP地址和端口号为准。
 
3.然后,我们运行以下命令:

python echoWorker.py
python echoClient.py

至此,即可看到输出。

Python 相关文章推荐
python网络编程学习笔记(四):域名系统
Jun 09 Python
python中字符串类型json操作的注意事项
May 02 Python
django 创建过滤器的实例详解
Aug 14 Python
Python爬虫包BeautifulSoup学习实例(五)
Jun 17 Python
python3实现mysql导出excel的方法
Jul 31 Python
python psutil模块使用方法解析
Aug 01 Python
python 用 xlwings 库 生成图表的操作方法
Dec 22 Python
对tensorflow中的strides参数使用详解
Jan 04 Python
对python中 math模块下 atan 和 atan2的区别详解
Jan 17 Python
使用python检查yaml配置文件是否符合要求
Apr 09 Python
pycharm 代码自动补全的实现方法(图文)
Sep 18 Python
python文件名批量重命名脚本实例代码
Apr 22 Python
python实现跨文件全局变量的方法
Jul 07 #Python
Python中的并发编程实例
Jul 07 #Python
Python编程语言的35个与众不同之处(语言特征和使用技巧)
Jul 07 #Python
python基于mysql实现的简单队列以及跨进程锁实例详解
Jul 07 #Python
python中使用urllib2获取http请求状态码的代码例子
Jul 07 #Python
Python中使用urllib2防止302跳转的代码例子
Jul 07 #Python
python中使用urllib2伪造HTTP报头的2个方法
Jul 07 #Python
You might like
php知道与问问的采集插件代码
2010/10/12 PHP
PHP并发查询MySQL的实例代码
2017/08/09 PHP
解决laravel 表单提交-POST 异常的问题
2019/10/15 PHP
javascript 中对象的继承〔转贴〕
2007/01/22 Javascript
javascript add event remove event
2008/04/07 Javascript
兼容IE与firefox火狐的回车事件(js与jquery)
2010/10/20 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
2017/04/11 Javascript
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
nodejs中实现用户注册路由功能
2019/05/20 NodeJs
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
代码详解django中数据库设置
2019/01/28 Python
通过shell+python实现企业微信预警
2019/03/07 Python
详解python tkinter教程-事件绑定
2019/03/28 Python
python如何删除文件中重复的字段
2019/07/16 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
python连接mysql数据库并读取数据的实现
2020/09/25 Python
乌克兰在线电子产品商店:MTA
2019/11/14 全球购物
方法名是否可以与构造器的名字相同
2012/06/04 面试题
家长会演讲稿范文
2014/01/10 职场文书
招聘专员岗位职责
2014/03/07 职场文书
企业出纳岗位职责
2014/03/12 职场文书
校园环保建议书
2014/05/14 职场文书
使用ORM新增数据在Mysql中的操作步骤
2021/07/26 MySQL