【转】centos5.2 安装gearmand gearman for php

PHP客户端Gearman扩展安装:

wget http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz
tar zxvf libevent-1.4.12-stable.tar.gz
cd libevent-1.4.12-stable/
./configure –prefix=/usr
make && make install
/sbin/ldconfig
cd ../

wget http://launchpad.net/gearmand/trunk/0.9/+download/gearmand-0.9.tar.gz
tar zxvf gearmand-0.9.tar.gz
cd gearmand-0.9/
./configure
make
make install
/sbin/ldconfig
cd ../

wget http://pecl.php.net/get/gearman-0.5.0.tgz
tar zxvf gearman-0.5.0.tgz
cd gearman-0.5.0
/usr/local/webserver/php/bin/phpize
./configure –with-php-config=/usr/local/webserver/php/bin/php-config –with-gearman
make
make install
cd ../

php.ini文件中增加:

extension = “gearman.so”

——————————————————————————–

以守护进程启动:

gearmand -L 192.168.0.1 -p 4730 -u root -d

从 PHP 使用 Gearman

从 PHP 使用 Gearman 类似于之前的示例,惟一的区别在于这里是在 PHP 内创建 producer 和 consumer。每个 consumer 的工作均封装在一个或多个 PHP 函数内。

清单 1 给出了用 PHP 编写的一个 Gearman worker。将这些代码保存在一个名为 worker.php 的文件中。

清单 1. Worker.php
addServer(); $worker->addFunction(“title”, “title_function”); while ($worker->work()); function title_function($job) { return ucwords(strtolower($job->workload())); }?>

清单 2 给出了用 PHP 编写的一个 producer,或 client。将此代码保存在一个名为 client.php 的文件内。

清单 2. Client.php
addServer(); print $client->do(“title”, “AlL THE World’s a sTagE”); print “\n”;?>

现在,可以用如下的命令行连接客户机与 worker 了:

$ php worker.php &$ php client.phpAll The World’s A Stage$ jobs[3]+ Running php worker.php &

这个 worker 应用程序继续运行,准备好服务另一个客户机。