一、安装
操作系统:redhat 5.7
1. 安装gearman 
首先,我们需要安装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

附Gearmand(job server的启动参数简单说明)
-b, –backlog=BACKLOG 连接请求队列的最大值
-d, –daemon Daemon 守护进程化
-f, –file-descriptors=FDS 可打开的文件描述符数量
-h, –help
-l, –log-file=FILE Log 日志文件
-L, –listen=ADDRESS 开启监听的地址
-p, –port=PORT 开启监听的端口
-P, –pid-file=FILE File pid file
-r,–protocol=PROTOCOL 使用的协议
-q, –queue-type=QUEUE 持久化队列类型
-t, –threads=THREADS I/O线程数量
-u, –user=USER 进程的有效用户名

libdrizzle Options:
--libdrizzle-host=HOST         Host of server. 
--libdrizzle-port=PORT         Port of server. 
--libdrizzle-uds=UDS           Unix domain socket for server. 
--libdrizzle-user=USER         User name for authentication. 
--libdrizzle-password=PASSWORD Password for authentication. 
--libdrizzle-db=DB             Database to use. 
--libdrizzle-table=TABLE       Table to use. 
--libdrizzle-mysql             Use MySQL protocol.

libmemcached Options:
--libmemcached-servers=SERVER_LIST List of Memcached servers to use.

libsqlite3 Options:
--libsqlite3-db=DB       Database file to use. 
--libsqlite3-table=TABLE Table to use.

libpq Options:
--libpq-conninfo=STRING PostgreSQL connection information string. 
--libpq-table=TABLE     Table to use.

http Options:
--http-port=PORT Port to listen on.

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
​ Job started
===================

test gearman
-----------

$ python echoClient.py
test gearman ​

至此,即可看到输出。

3.总结
Gearman工作在TCP上,默认端口为4730,
client与job server、worker与job server的通信都基于此tcp的socket连接。
client是工作任务的发起者,worker是可以注册处理函数的工作任务执行者,job server为工作的调度者。

协议包含请求报文与响应报文两个部分,所有发向job server的数据包(TCP报文段的数据部分)认为是请求报文,
所有从job server发出的数据包(TCP报文段的数据部分)认为是响应报文。
worker或者client与job server间的通信是基于二进制数据流的,但在管理client也有基于行文本协议的通信。

gearman:从安装到python API测试相关推荐

  1. python api测试框架_python api 测试框架

    python常用框架 Django: Python Web应用开发框架 Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响.Django是走大而全的方向,它最出名的是 ...

  2. Windows 10 安装UHD驱动, 用UHD python API使用USRP B210

    本文基于这样的需求:想在Windows (10) 下,用UHD Python API 使用Ettus USRP B210,官方文档介绍的是基于从源码安装,这种方式对我来说太浪费时间,网上有很多教程,但 ...

  3. macos 安装 UHD 驱动并调用 Python API

    Mac调用 UHD Python API 安装 UHD驱动 brew install uhd 也可以用 macport 安装 uhd,但版本比较低,不建议采用 安装 UHD Python API 如果 ...

  4. python api开发用什么框架_python api框架

    关于 python api框架的搜索结果 问题 哪种python框架仅适合于api 我是Python的新手,并希望使用python构建其余的完整Web服务.由于某些依赖性,无法使用任何其他脚本语言. ...

  5. thinkcmf5调用指定分类的二级_Tengine快速上手系列教程amp;视频:基于Python API的图片分类应用入门丨附彩蛋...

    前言:近期,Tengine团队加班加点,好消息接踵而来,OpenCV 4.3.0发布,OPEN AI LAB AIoT智能开发平台Tengine与OpenCV合作共同加速边缘智能,Tengine再获业 ...

  6. python做性能测试框架_python api 测试框架

    python常用框架 Django: Python Web应用开发框架 Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响.Django是走大而全的方向,它最出名的是 ...

  7. python rest api 测试_如何用Python编写REST API的单元测试

    在过去的几个月中,正在从事一个名为B的项目.它是带有简单Web UI的徽章生成器,用于添加数据并生成PDF可打印徽章.B后端现在已转移到REST-API并测试REST-API中使用的功能,我们需要一些 ...

  8. 如何检查python的库是否安装成功_如何测试redis是否安装成功

    下载Redis 下载好后 复制所在位置 cd 跳到 D:\Java\64bit 图中的目录位置 这样便启动成功了. 设置redis密码的话要 到redis.conf中找到 requirepass关键字 ...

  9. 安装 K8S, Bigip, Gateway API 测试环境 (1)

    准备环境 K8s controller node: vxlan-k8s K8s pod node (两个): vxlan-test-1 vxlan-test-2 BigIP: vxlan-bigip ...

  10. Postman 教程使用详解:如何安装和使用 Postman 进行 API 测试

    什么是Postman? Postman 是一个可扩展的 API 测试工具,可快速集成到 CI/CD 管道中.它于2012年作为Abhinav Asthana的一个副项目开始,旨在简化测试和开发中的AP ...

最新文章

  1. python是高级动态语言_Python动态语言之魅力揭秘
  2. sdh管理单元指针_C语言学习|指针的介绍
  3. mysql 113_MySQL教程113-MySQL流程控制语句
  4. Unix时间戳 POSIX时间 Unix时间
  5. react redux 相关技术
  6. 一套通用的后台管理系统Base Admin 前端:layui 后端:java
  7. php控制台脚本错误输出到php_errors.log
  8. 利用汇编与机器码定位崩溃点
  9. Ubuntu Mate 开机自启ROS
  10. 游戏主播这个行为终于有人治了!腾讯下“禁令”
  11. MVC设计之MVC设计模式(介绍)
  12. python美多商城项目百度网盘_美多商城项目(六)
  13. C#中导出Execl
  14. /etc/init.d/functions详解
  15. [2019杭电多校第三场][hdu6609]Find the answer(线段树)
  16. BiometricPrompt之三 - Fingerprint, Iris, Face UI优先级
  17. Python 根据身份证号码计算持有者年龄
  18. 关于MTTF、MTBF、MTRF
  19. 微信小程序分享页面,分享到朋友圈
  20. 单片机==共阴数码管(4)

热门文章

  1. python编程视频剪辑_MoviePy常用剪辑类及Python视频剪辑自动化
  2. 迈思德物联网网关与施耐德SoMachine平台远程调试测试成功。
  3. oracle dataaccess component,Oracle Data Access Components (ODAC)
  4. 使用代码生成器为微服务生成基本的CRUD代码
  5. 【图像加密解密】基于matlab GUI混沌序列图像加密解密(含相关性检验)【含Matlab源码 1862期】
  6. 技术分享 | MaxScale 实现 MySQL读写分离
  7. CSDN Markdown编辑器 图片对齐方式(居中/左对齐/右对齐)及图片大小
  8. 随机森林回归预测r语言_R语言 决策树和随机森林 回归分析
  9. 二叉树的非递归遍历实现
  10. 简单嵌入式系统软件架构