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语言中的按位运算符
Nov 26 Python
Python中的元类编程入门指引
Apr 15 Python
Python微信库:itchat的用法详解
Aug 14 Python
Python绑定方法与非绑定方法详解
Aug 18 Python
50行Python代码实现人脸检测功能
Jan 23 Python
Python爬虫包BeautifulSoup简介与安装(一)
Jun 17 Python
Python3.5迭代器与生成器用法实例分析
Apr 30 Python
使用python matploblib库绘制准确率,损失率折线图
Jun 16 Python
对python中list的五种查找方法说明
Jul 13 Python
python 匿名函数与三元运算学习笔记
Oct 23 Python
python中常用的数据结构介绍
Jan 12 Python
使用opencv-python如何打开USB或者笔记本前置摄像头
Jun 21 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函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
PHP以及MYSQL日期比较方法
2012/11/29 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
PHP 配置后台登录以及模板引入
2017/01/24 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
javascript 日期常用的方法
2009/11/11 Javascript
jQuery 追加元素的方法如append、prepend、before
2014/01/16 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
浅析$(function) ready和onload 的区别
2016/09/03 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
你应该了解的JavaScript Array.map()五种用途小结
2018/11/14 Javascript
p5.js实现动态图形临摹
2019/10/23 Javascript
vue使用lodop打印控件实现浏览器兼容打印的方法
2021/02/07 Vue.js
python求素数示例分享
2014/02/16 Python
python实现定制交互式命令行的方法
2014/07/03 Python
python实现井字棋游戏
2020/03/30 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
2019/08/05 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
python使用配置文件过程详解
2019/12/28 Python
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
匡威俄罗斯官网:Converse俄罗斯
2020/05/09 全球购物
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
创建省级文明单位实施方案
2014/02/27 职场文书
课例研修方案
2014/05/31 职场文书
2014年高中班主任工作总结
2014/11/08 职场文书
异地恋情人节寄语
2015/02/28 职场文书
Mysql中@和@@符号的详细使用指南
2022/06/05 MySQL
基于Python实现nc批量转tif格式
2022/08/14 Python