gearman 入门使用笔记

来源:互联网 发布:mac wireshark 编辑:程序博客网 时间:2024/06/05 06:20

文章来源:

http://blog.csdn.net/xundh/article/details/46287681

一、简介

gearman是可以把工作委派到其它机器或进程的工具。 
官网地址:http://gearman.org/

Gearman通常由三部分组成,client+worker+任务服务器,由worker执行client发来的job,再通过job server返回给client。Gearman提供了Client、Worker的API,利用这些API来与job server通讯。 
这是工作原理图: 
这里写图片描述

二、安装

安装官方指导在:http://gearman.org/getting-started/ 
下面介绍在ubuntu的具体安装过程:

1.在ubuntu14.04,Python-Software-Properties被替换成了Software-Properties-Common.

sudo apt-get install software-properties-commonsudo add-apt-repository ppa:gearman-developers/ppasudo apt-get update

2.安装GearmanJobServer、Dev Tools、Perform Upgrade

sudo apt-get install gearman-job-server libgearman-devsudo apt-get install gearman-toolssudo apt-get upgrade

3.如果没有PECL,安装PECL,并使用PECL安装Gearman(CLI,Client,Worker)

sudo apt-get install php-pearsudo apt-get install php5-devsudo pecl install gearman

4.修改php.ini(CLI and Server)to Use Gearman

sudo vi /etc/php5/cli/php.ini

在Dynamic Extensions里加上: 
extension=gearman.so

三、在php里使用gearman

1、php调用gearman的方法

php查看版本

<?php print gearman_version() . "\n"; ?>运行方式:php test.php

这里写图片描述

建一个worker

<?php    $worker= new GearmanWorker();    $worker->addServer();    $worker->addFunction("reverse", "my_reverse_function");    while ($worker->work());    function my_reverse_function($job){      return strrev($job->workload());    }?>

这个运行以后,要ctrl+c终止程序。这段代码建立一个worker对象,添加默认的server,注册reverse的回调函数。程序会进入一个死循环,每当有job进入的时候,回调函数会执行,这里只是简单的把字符串反转,然后返回。

建一个Client

client类似worker,建立下面的server.PHP

<?php$client=new GearmanClient();$client->addServer();print $client->do("reverse","Hello World!");?>

看下执行结果: 
这里写图片描述

建一个图片resize worker

<?php$worker= new GearmanWorker();$worker->addServer();$worker->addFunction("resize", "my_resize_function");while ($worker->work());function my_resize_function($job){  $thumb = new Imagick();  $thumb->readImageBlob($job->workload());  if ($thumb->getImageHeight() > 600)    $thumb->scaleImage(0, 600);  else if ($thumb->getImageWidth() > 800)    $thumb->scaleImage(800, 0);  return $thumb->getImageBlob();}?>

php需要ImageMagick支持,安装方法:

sudo wget http://www.imagemagick.org/download/ImageMagick.tar.gztar -xzvf ImageMagick.tar.gzcd ImageMagicksudo ./configure -prefix=/usr/local/imagemagick -enable-lzw -with-modules && make && make install

Resize Client

这里使用命令的方式调用client

gearman -f resize < full.jpg > thumb.jpg

2、不使用php ,直接用命令行的方式使用gearman 示例

启动一个终端运行守护进程

sudo gearmand --daemon

启动一个worker,这里调用ls命令

gearman -w -f ls -- ls -lh

启动一个client

gearman -f ls < /dev/null

可以看到输出结果。 
这里写图片描述

四、一些基本命令

/etc/init.d/gearman-job-server status 查看运行状态/etc/init.d/gearman-job-server restart 重启 其它还有start stop 命令

这里写图片描述

在centos下,一般文档介绍使用gearmand -d 启动。有时可能有问题,这时可以使用命令:

gearmand –log-file gearmand.log –listen 127.0.0.1 –port=4730 –verbose=INFO &

参考网址:http://gearman.org/getting-started/#client

Ubuntu如何添加删除PPA: http://blog.csdn.net/li_hai/article/details/8189290



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 防盗门保险坏了怎么办 厦门工会卡过期怎么办 阴雨天被子受潮怎么办 衣服晾臭了怎么办 喷砂机油水分离泵有油怎么办 水太烫玻璃瓶盖打不开怎么办 玻璃罐的玻璃盖打不开怎么办? 开红酒没有开瓶器怎么办 手机卡突然坏了怎么办 滚筒洗衣机打不开门怎么办 全自动洗衣机门开不开怎么办 好期待评分不足怎么办 单片机数码管亮度低怎么办 猫的同轴灯不亮怎么办 楼下邻居太吵怎么办 冰箱冷却液内露怎么办 冷却水没有了会怎么办 金立m7信号不好怎么办 csgo凉了饰品怎么办 模型拟合度低怎么办 石膏线用发泡胶怎么办 电表上显示err10怎么办 电表显示欠压怎么办 tcl电视遥控器失灵怎么办 玩具汽车遥控器失灵怎么办 玩具车遥控丢了怎么办 按压扣坏了怎么办 电脑用不了鼠标怎么办 多肉上的肉虫子怎么办 警察被取消警衔怎么办 隐形眼镜带歪了怎么办 gta5正在加载慢怎么办 gta5线上卡住了怎么办 皮子掉的颜色怎么办 gta5死了之后车怎么办 潜水口里有水怎么办 800度近视潜水怎么办 不会游泳深潜怎么办 高度近视浮潜怎么办 电脑玩gta4卡怎么办 人体身上有螨虫怎么办