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中的CURL PycURL使用例子
Jun 01 Python
centos6.4下python3.6.1安装教程
Jul 21 Python
Python与R语言的简要对比
Nov 14 Python
python中pika模块问题的深入探究
Oct 13 Python
Python运维开发之psutil库的使用详解
Oct 18 Python
python爬虫之爬取百度音乐的实现方法
Aug 24 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
Numpy中对向量、矩阵的使用详解
Oct 29 Python
Python3将jpg转为pdf文件的方法示例
Dec 13 Python
python游戏开发的五个案例分享
Mar 09 Python
python文件读取失败怎么处理
Jun 23 Python
python实现逻辑回归的示例
Oct 09 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生成随机数或者字符串的代码
2008/09/05 PHP
PHP array_push 数组函数
2009/12/26 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
关于PHP的curl开启问题探讨
2014/04/08 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
PHP实现八皇后算法
2019/05/06 PHP
utf8的编码算法 转载
2006/12/27 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
使用javascript过滤html的字符串(注释标记法)
2013/07/08 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
node.js中的fs.appendFile方法使用说明
2014/12/17 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
详解vue 配合vue-resource调用接口获取数据
2017/06/22 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
微信小程序之多列表的显示和隐藏功能【附源码】
2018/08/06 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
Python中实现三目运算的方法
2015/06/21 Python
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
python如何通过protobuf实现rpc
2016/03/06 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
Django REST framework内置路由用法
2019/07/26 Python
python中yield的用法详解
2021/01/13 Python
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
会计出纳岗位职责
2013/12/25 职场文书
主题婚礼策划方案
2014/02/10 职场文书
装饰活动策划方案
2014/02/11 职场文书
会计专业自荐信
2014/06/03 职场文书
片区教研活动总结
2014/07/02 职场文书
领导干部贪图享乐整改措施
2014/09/21 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS