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设置tmpfs来加速项目的教程
Apr 17 Python
详解Python爬虫的基本写法
Jan 08 Python
python清除字符串中间空格的实例讲解
May 11 Python
Mac下Anaconda的安装和使用教程
Nov 29 Python
Django框架模板介绍
Jan 15 Python
Pandas中DataFrame的分组/分割/合并的实现
Jul 16 Python
python每5分钟从kafka中提取数据的例子
Dec 23 Python
利用python3 的pygame模块实现塔防游戏
Dec 30 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
Mar 06 Python
python pyecharts 实现一个文件绘制多张图
May 13 Python
django的403/404/500错误自定义页面的配置方式
May 21 Python
Python3爬虫中关于Ajax分析方法的总结
Jul 10 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警告错误信息的解决方法
2013/06/03 PHP
深入解析WordPress中加载模板的get_template_part函数
2016/01/11 PHP
PHP实现的多文件上传类及用法示例
2016/05/06 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
Node.js文件操作详解
2014/08/16 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
2015/09/24 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
2016/01/12 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
javascript中的面向对象
2017/03/30 Javascript
vue登录注册及token验证实现代码
2017/12/14 Javascript
浅谈Redux中间件的实践
2018/07/27 Javascript
webpack@v4升级踩坑(小结)
2018/10/08 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
python字符串加密解密的三种方法分享(base64 win32com)
2014/01/19 Python
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
Python冒泡排序注意要点实例详解
2016/09/09 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
python变量的作用域是什么
2020/05/26 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
规划编制实施方案
2014/03/15 职场文书
物流专业求职信
2014/06/30 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
影视广告专业求职信
2014/09/02 职场文书
Python基础之常用库常用方法整理
2021/04/30 Python
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis
Redis高并发缓存架构性能优化
2022/05/15 Redis