gearman:从安装到python API测试
一、安装
操作系统: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测试相关推荐
- python api测试框架_python api 测试框架
python常用框架 Django: Python Web应用开发框架 Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响.Django是走大而全的方向,它最出名的是 ...
- Windows 10 安装UHD驱动, 用UHD python API使用USRP B210
本文基于这样的需求:想在Windows (10) 下,用UHD Python API 使用Ettus USRP B210,官方文档介绍的是基于从源码安装,这种方式对我来说太浪费时间,网上有很多教程,但 ...
- macos 安装 UHD 驱动并调用 Python API
Mac调用 UHD Python API 安装 UHD驱动 brew install uhd 也可以用 macport 安装 uhd,但版本比较低,不建议采用 安装 UHD Python API 如果 ...
- python api开发用什么框架_python api框架
关于 python api框架的搜索结果 问题 哪种python框架仅适合于api 我是Python的新手,并希望使用python构建其余的完整Web服务.由于某些依赖性,无法使用任何其他脚本语言. ...
- thinkcmf5调用指定分类的二级_Tengine快速上手系列教程amp;视频:基于Python API的图片分类应用入门丨附彩蛋...
前言:近期,Tengine团队加班加点,好消息接踵而来,OpenCV 4.3.0发布,OPEN AI LAB AIoT智能开发平台Tengine与OpenCV合作共同加速边缘智能,Tengine再获业 ...
- python做性能测试框架_python api 测试框架
python常用框架 Django: Python Web应用开发框架 Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响.Django是走大而全的方向,它最出名的是 ...
- python rest api 测试_如何用Python编写REST API的单元测试
在过去的几个月中,正在从事一个名为B的项目.它是带有简单Web UI的徽章生成器,用于添加数据并生成PDF可打印徽章.B后端现在已转移到REST-API并测试REST-API中使用的功能,我们需要一些 ...
- 如何检查python的库是否安装成功_如何测试redis是否安装成功
下载Redis 下载好后 复制所在位置 cd 跳到 D:\Java\64bit 图中的目录位置 这样便启动成功了. 设置redis密码的话要 到redis.conf中找到 requirepass关键字 ...
- 安装 K8S, Bigip, Gateway API 测试环境 (1)
准备环境 K8s controller node: vxlan-k8s K8s pod node (两个): vxlan-test-1 vxlan-test-2 BigIP: vxlan-bigip ...
- Postman 教程使用详解:如何安装和使用 Postman 进行 API 测试
什么是Postman? Postman 是一个可扩展的 API 测试工具,可快速集成到 CI/CD 管道中.它于2012年作为Abhinav Asthana的一个副项目开始,旨在简化测试和开发中的AP ...
最新文章
- python是高级动态语言_Python动态语言之魅力揭秘
- sdh管理单元指针_C语言学习|指针的介绍
- mysql 113_MySQL教程113-MySQL流程控制语句
- Unix时间戳 POSIX时间 Unix时间
- react redux 相关技术
- 一套通用的后台管理系统Base Admin 前端:layui 后端:java
- php控制台脚本错误输出到php_errors.log
- 利用汇编与机器码定位崩溃点
- Ubuntu Mate 开机自启ROS
- 游戏主播这个行为终于有人治了!腾讯下“禁令”
- MVC设计之MVC设计模式(介绍)
- python美多商城项目百度网盘_美多商城项目(六)
- C#中导出Execl
- /etc/init.d/functions详解
- [2019杭电多校第三场][hdu6609]Find the answer(线段树)
- BiometricPrompt之三 - Fingerprint, Iris, Face UI优先级
- Python 根据身份证号码计算持有者年龄
- 关于MTTF、MTBF、MTRF
- 微信小程序分享页面,分享到朋友圈
- 单片机==共阴数码管(4)
热门文章
- python编程视频剪辑_MoviePy常用剪辑类及Python视频剪辑自动化
- 迈思德物联网网关与施耐德SoMachine平台远程调试测试成功。
- oracle dataaccess component,Oracle Data Access Components (ODAC)
- 使用代码生成器为微服务生成基本的CRUD代码
- 【图像加密解密】基于matlab GUI混沌序列图像加密解密(含相关性检验)【含Matlab源码 1862期】
- 技术分享 | MaxScale 实现 MySQL读写分离
- CSDN Markdown编辑器 图片对齐方式(居中/左对齐/右对齐)及图片大小
- 随机森林回归预测r语言_R语言 决策树和随机森林 回归分析
- 二叉树的非递归遍历实现
- 简单嵌入式系统软件架构