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

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

一、概述:

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

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

yum install gearmand -y
 
注意:如果不希望通过yum的方式来安装gearmand,可以通过源码编译安装,具体安装方法可以参考:http://www.jb51.net/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

至此,即可看到输出。

(0)

相关推荐

  • pycharm 使用心得(八)如何调用另一文件中的函数

    实现步骤: 1. PyCharm, IDE有个Project setting图标,是给run图标做配置的,配置run file为myfile.py2. 复制代码 代码如下: # --------------------------------------#! /usr/bin/python# File: myfile.py# Author: Michael Fan from make.py import do def main():do() if __name__ == '__main__':m

  • pycharm 使用心得(五)断点调试

    [运行]和[调试]前的设置,详见前面的文章,helloword. 1,设置断点 在代码前面,行号的后面,鼠标单击,就可以设置断点.如下: 2,调试 断点点击那个绿色的甲虫图标(似乎甲虫已经成为debug专用图标了),进行断点调试. 点击后,会运行到第一个断点.会显示该断点之前的变量信息. 点击Step Over 或者按F8,我们继续往下运行,到下一个断点: 补充: 断点的其他操作,和功能,大家可以把鼠标移到相应的按钮上,看一下,试试便知.如下: 总结: 这就是PyCharm的断点功能,还是很简单

  • 零基础入门篇之Linux及Arm-Linux程序开发笔记

    前言:本文记录了自己从一个完全不懂Linux的人如何一步步学会Linux程序开发的过程.当然也希望本文能够达到它的目的,让那些和我一样没有任何基础的人也能快速入门Linux程序开发. 一.Arm-Linux程序开发平台简要介绍 Arm-Linux程序的开发并不像我们以前接触的Windows程序开发那样,关于平台的搭建就繁琐很多,所以在正式进入程序开发之前先对这种开发模式进行简要介绍,让一个即使没有任何Linux开发经验的程序员也能够看懂后面的内容. 1.1程序开发所需系统及开发语言 开发arm-

  • Android开发之AlarmManager的用法详解

    Android中的AlarmManager实质上是一个全局的定时器,是Android中常用的一种系统级别的提示服务,在指定时间或周期性启动其它组件(包括Activity,Service,BroadcastReceiver). 一.概述: 该类提供一种访问系统闹钟服务的方式,允许你去设置在将来的某个时间点去执行你的应用程序.当你的闹钟响起(时间到)时,在它上面注册的一个意图(Intent)将会被系统以广播发出,然后自动启动目标程序,如果它没有正在运行.注册的闹钟会被保留即使设备处于休眠中(如果闹钟

  • Django1.7+python 2.78+pycharm配置mysql数据库教程

    配置好virtualenv 和virtualenvwrapper后,使用pycharm创建新项目.之后要面临的问题就来了,之前一直使用的是sqlite作为开发数据库进行学习,按照之前看教程的原则,好像就是说开发环境要和生产环境尽量的一致,所以现在想尝试一下使用更有可能在生产环境部署的mysql数据库进行开发. 本觉得是一件应该很轻松的事情,没想到遇到了一些麻烦 根据一通百度,搜出来的方案大概有: MySQLdb mysql安装时候自带的connector pymysql MySQLdb 是dja

  • pycharm 使用心得(六)进行简单的数据库管理

    例如: 1.创建,修改和删除数据表,字段,索引,主键,外键等. 2.提供table editor来进行数据操作 3.提供console来运行sql命令 4.提供数据导出功能 数据库创建方法 1)在pycharm的右上角找到'database'选项卡 2)打开选项卡,按'alt+insert'键,选择Data Source. 3)为数据库连接取一个名称,选择一个JDBC driver files.如果没有这个文件,pycharm可以自动下载. 4)选择一个JDBC driver class,mys

  • pycharm 使用心得(九)解决No Python interpreter selected的问题

    初次安装完PyCharm后,新建项目时,遇到了No Python interpreter selected的问题. 意思是说没有找到Python解释器.那我们添加Python解释器即可. Python–Preferences–Project Interpreter–Python Interpreter 点击"+"号选择系统安装的Python. 然后再返回Project Interpreter,选择刚添加的解释器. 现在就能新建项目了. 开始你的Python之旅吧.

  • pycharm 使用心得(七)一些实用功能介绍

    实时比较 PyCharm 对一个文件里你做的改动保持实时的跟踪,通过在编辑器的左侧栏显示一个蓝色的标记. 这一点非常方便,我之前一直是在Eclipse里面用命令"Compare against HEAD" 来比较一个文件前后的改动. 在PyCharm中,你可以对你的改动一览无余.同时,点击那个标记,会显示出之前的内容以及一个工具栏: 你可以很容易地回滚这些改动,在一个详尽的对话框中查看这些改动或是将之前的文本粘贴到剪切板上. 提交时的比较预览在Eclipse 中,当你提交改动时,会有一

  • gearman队列持久化引发的问题及解决方法

    本文简述了gearman用mysql持久化的方法,以及由此引发的一些问题,具体分析如下: 一.gearman 创建Mysql持久化队列的方式如下: 1. 登入mysql命令行,运行: create database gearman; 2. 启动gearman,命令如下: /usr/local/gearman/sbin/gearmand -p 4730 -L 0.0.0.0 --log-file=/tmp/gearmand-4730.log --pid-file=/tmp/gearmand-473

  • pycharm 使用心得(三)Hello world!

    1,新建一个项目 File --> New Project... 2,新建一个文件右键单击刚建好的helloWord项目,选择New --> Python File 3,输入文件名输入文件名,没什么好说的 4,进入编写界面PyCharm的默认编辑界面很怪,会自动生成一行 __author__ = "作者" 的头.而比较常用的文件头,如:#coding=utf-8 等,反倒没有自动生成. 输入code: print "Hello word!" 5,设置控制

  • pycharm 使用心得(四)显示行号

    在PyCharm 里,显示行号有两种办法: 1,临时设置.右键单击行号处,选择 Show Line Numbers. 但是这种方法,只对一个文件有效,并且,重启PyCharm 后消失. 2,永久设置.File --> Settings -->Editor -->Appearance ,  之后勾选Show Line Numbers.

随机推荐