gearman是可以把工作委派到其它机器或进程的工具。
Gearman通常由三部分组成,client+worker+任务服务器,由worker执行client发来的job,再通过job server返回给client。Gearman提供了Client、Worker的API,利用这些API来与job server通讯。
官网地址:http://gearman.org/
官方安装教程:http://gearman.org/getting-started/
这里以PHP为例,Gearman的安装分两步:
1.安装并启动Gearman这个守护程序
2.安装与 PHP 版本相匹配的 PHP Gearman扩展。 http://pecl.php.net/package/gearman
前辈们分享的安装教程:http://segmentfault.com/a/1190000000494087
启动Gearman这个守护程序:
gearmand -d
一个简单的例子:
client.php
$client= new GearmanClient(); $client->addServer("127.0.0.1", 4730); $str = $_GET['a']; print $client->do("title", $str);
worker.php
$worker= new GearmanWorker(); $worker->addServer("127.0.0.1", 4730); $worker->addFunction("title", "title_function"); while ($worker->work()); function title_function($job) { $str = $job->workload(); return strlen($str); }
然后打开终端,将worker.php运行起来,命令:
nohup php worker.php &
这时可以访问client.php查看效果
注:
1.worker应该做成守护进程(CLI模式),可以开启多个,这样client发起的任务就会分发到各个worker分别来执行(自动负载均衡 )
2.job也可以开启多个,以避免单点故障
中文手册下载: