Gearman 安装使用教程
Gearman是一个分发任务的程序框架,可以用在各种场合,Gearman更偏向于任务分发功能。它的任务分布非常简单,简单得可以只需要用脚本即可完成。
Gearman 分布式任务实现原理上只用到2个字段,function name 和 data。function name即任务名称,由client传给job server,
job server根据function name选择合适的worker节点来执行。data通常为执行任务所需的自定义的内容,比如简单的做法可以把需要执行的脚本当成data即可(当然要注 意其中的安全防范)。
如果有多个worker可以处理同一个function name, 则job server会自动分配一个。当用于远程监控场景时,我们可以让每个worker注册成不同的业务名称,以达到方便控制每台worker节点的目的。


#安装运行依赖
yum install -y boost boost-devel libevent libevent-devel gperf libuuid libuuid-devel #下载最新版 Gearman
wget --no-check-certificate https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.tar.gz
./configure
make && make install mkdir -p /usr/local/var/log # 创建日志目录,否则无法启动服务# 安装PHP扩展支持
wget http://pecl.php.net/get/gearman-1.1.2.tgz #下载PHP扩展
tar zxf gearman-1.1.2.tgz
cd gearman-1.1.2
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install #修改php.ini配置文件,新增以下内容
extension=gearman.so service php-fpm restart # 重启服务
在centos下,一般文档介绍使用 gearmand -d 启动。有时可能有问题,这时可以使用命令
gearmand --log-file gearmand.log --listen 192.168.97.12 --port=4730 -d # -------------------- client.php 文件内容 ---------------------- #
<?php
$client= new GearmanClient();
$client->addServer('127.0.0.1', 4730); for ($i=0; $i<15; $i++) {
$data = array(
'time' => date('Y-m-d H:i:s'),
'idx' => $i );
$dataString = serialize($data);
$client->doBackground('jobName', $dataString);
} # -------------------- worker.php 文件内容 ---------------------- #
<?php
$worker = new GearmanWorker();
$worker->addServer('127.0.0.1', 4730);
$worker->addFunction('jobName', 'my_task'); while ($worker->work()){
if ($worker->returnCode() != GEARMAN_SUCCESS) {
echo 'Something Wrong :'.$worker->returnCode(); //Gearman 状态错误 需要做日志或异常处理
}
} function my_task($job) {
$dataString = $job->workload();
$data = unserialize($dataString);
echo var_export($data, true).PHP_EOL;
sleep(3);
}

Gearman 安装使用教程的更多相关文章
- IntelliJ IDEA - 热部署插件JRebel 安装使用教程
IntelliJ IDEA - JRebel 安装使用教程 JRebel 能做什么? JRebel 是一款热部署插件.当你的 Java-web 项目在 tomcat 中 run/debug 的时候 , ...
- Zabbix3.x安装图解教程
准备知识: Zabbix3.x比较之前的2.0界面有了很大的变化,但是安装部署过程与2.x基本完全一样. 1.Zabbix2.x安装图解教程 http://www.osyunwei.com/archi ...
- VMware vCenter Server安装图解教程
安装说明: 1.安装VMware vCenter Server的主机操作系统为:Windows Server 2008 R2 2.在Windows Server 2008 R2中需要预先安装好SQL ...
- 在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程
在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程 本教程提供PDF格式下载: 在RedHat.Enterprise.Linux_v6.3系统中安装Ora ...
- Zabbix安装图解教程
说明: 操作系统:CentOS IP地址:192.168.21.127 Web环境:Nginx+MySQL+PHP zabbix版本:Zabbix 2.2 LTS 备注:Linux下安装zabbix需 ...
- MapGIS6.7安装图文教程(完美破解)
mapgis安装比较简单,主要注意在安装的时候,先打开软件狗,然后再进行软件安装,一般就不会照成其他安装失败的现象,有时候安装之前没有打开软件狗也安装成功了,也有这情况,不过软件使用也需要软件狗的支持 ...
- VirtualBox安装Ubuntu教程
1.VirtualBox虚拟机安装,及VirtualBox安装Ubuntu教程VirtualBox版本为VirtualBox-4.3.12-93733-Win.exe,Ubuntu版本为ubuntu- ...
- gearman安装及初次使用
官网: http://gearman.org/ 一篇文章: 利用Gearman实现异步任务处理 一.问题分析 问题:在性能测试过程中,发现用户管理平台在进行图片上传时,性能不佳. 分析:经过代码分析 ...
- MySQL5.0版本的安装图解教程
MySQL5.0版本的安装图解教程是给新手学习的,当前mysql5.0.96是最新的稳定版本. mysql 下载地址 http://www.jb51.net/softs/2193.html 下面的是M ...
随机推荐
- TCP和HTTP的关系
TCP和HTTP的关系 首先简单地看看tcp,TCP连接是通过4个值来识别的: <源IP地址 源端口号 目的IP地址 目的端口号> 这四个值定义了一个TCP连接,两条不同的TCP连接中这四 ...
- It English 每日更新
unary operator 一元运算符 short circuit evaluation 短路经查询
- asp.net 播放flash
注意3点: 1.路径,swf播放器对应的是当前页面的路径,flv视频对应的是swf播放器的路径2.路径中不能出现中文3.IIS设置,IIS站点属性中的HTTP头->MIME添加MIME影射关系, ...
- TCP/IP详解学习笔记(13)-- TCP连接的建立与终止
1.TCP连接的建立 设主机B运行一个服务器进程,它先发出一个被动打开命令,告诉它的TCP要准备接收客户进程的连续请求,然后服务进程就处于听的状态.不断检测是否有客户进程发起连续 ...
- javascript代码复用模式(三)
前面谈到了javascript的类式继承.这篇继续部分类式继承,及一些现代继承. 类式继承模式-代理构造函数 这种模式通过断开父对象与子对象之间原型之间的直接链接关系,来解决上次说到的共享一个原型所带 ...
- prototype原型模式中的问题
对于每个构造函数来说,都有一个prototype属性.对于每个对象实例来说,都有_proto_属性. 参看下面代码: function Person(){} Person.prototype={ na ...
- Acronis Server备份Linux系统
Acronis Server备份Linux系统 前段时间用Acronis Disk Director Suite解决了Thinkpad笔记本在win7的分区问题(http://chenguang.bl ...
- dell ipmi sol
http://blog.arnoudvermeer.nl/post/52375062605/howto-setup-ipmi-sol-on-a-dell-r-series-server http:// ...
- JAVA语法细节(1)
1.变量的作用域 变量的作用域从变量定义的位置开始,到变量所在的那对大括号结束.变量定义内存开辟一块空间用于该变量,变量到达作用域时,该变量从内存中消失. 2.变量的数据类型 变量基本数据类型:byt ...
- 会"说话"的勒索病毒Cerber
最近有个案子与勒索病毒有关,证物是个台式机,运行Windows 7 64bit操作系统,委托方是某高科技公司,希望能调查出事发的关键时间点.感染来源及途径.恶意程序文件名等相关信息. 在对证物计算机进 ...