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之复习if语句
Oct 02 Python
python关闭windows进程的方法
Apr 18 Python
Python中import导入上一级目录模块及循环import问题的解决
Jun 04 Python
浅谈Python 的枚举 Enum
Jun 12 Python
读取本地json文件,解析json(实例讲解)
Dec 06 Python
python mysql断开重连的实现方法
Jul 26 Python
安装docker-compose的两种最简方法
Jul 30 Python
python单例模式原理与创建方法实例分析
Oct 26 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
Django 解决新建表删除后无法重新创建等问题
May 21 Python
Python图像处理二值化方法实例汇总
Jul 24 Python
Python可视化神器pyecharts绘制水球图
Jul 07 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初学者头疼问题总结
2006/10/09 PHP
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
基于MySQL体系结构的分析
2013/05/02 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
2016/03/21 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
JS常见问题整理(持续更新)
2013/08/06 Javascript
Jquery中find与each方法用法实例
2015/02/04 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
javascript电商网站抢购倒计时效果实现
2015/11/19 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
Javascript的this详解
2019/03/23 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
Python对象类型及其运算方法(详解)
2017/07/05 Python
python解析yaml文件过程详解
2019/08/30 Python
Python reduce函数作用及实例解析
2020/05/08 Python
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
瑞士男士时尚网上商店:Babista
2020/05/14 全球购物
资深财务管理人员自我评价
2013/09/22 职场文书
公司市场部岗位职责
2013/12/02 职场文书
后勤部长岗位职责
2013/12/14 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
2015年超市工作总结
2015/04/09 职场文书
现货白银电话营销话术
2015/05/29 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
如何在Mac上通过docker配置PHP开发环境
2021/05/29 PHP
Python深度学习之实现卷积神经网络
2021/06/05 Python
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS