标签:
由于只在ubuntu下进行练习,centerOS的具体怎么实施后面再来测试
1.第一步:安装gearman
首先运行sudo apt-get install php5-dev 才能安装php的gearman扩展,第二部运行sudo apt-get install gearman ,这一步会把gearman扩展 gearmand任务分发器 gearman-job-server工作服务器一起安装,所以比起刚开始用的编译安装,实在是太方便了。
2.启动任务分发器
sudo gearmand -d -L 127.0.0.1 -p 5555 -d 是以守护进程启动 -L是工作服务器的ip -p是端口
3.启动gearman-job-server 工作服务器
sudo service gearman-job-server status 查看服务器运行状态,如果没有运行,则把status改为start启动。
做个小测试:
worker.php
<?php $worker= new GearmanWorker(); $worker->addServer(‘127.0.0.1‘,‘5566‘); // $worker->addServer(‘127.0.0.1‘,‘5555‘); $worker->addFunction("title", "title_function"); while ($worker->work()); function title_function($job) { return ‘worker return‘; } ?>
worker1.php
<?php $worker= new GearmanWorker(); $worker->addServer(‘127.0.0.1‘,‘5555‘); // $worker->addServer(‘127.0.0.1‘,‘5555‘); $worker->addFunction("title", "title_function"); while ($worker->work()); function title_function($job) { return ‘worker1 return‘; } ?>
worker2.php
<?php $worker= new GearmanWorker(); $worker->addServer(‘127.0.0.1‘,‘5577‘); $worker->addFunction("title", "title_function"); while ($worker->work()); function title_function($job) { return ‘worker2 return‘; } ?>
client.php
<?php $client= new GearmanClient(); $client->addServer(‘127.0.0.1‘,‘5566‘); $client->addServer(‘127.0.0.1‘,‘5555‘); $client->addServer(‘127.0.0.1‘,‘5577‘); print $client->do("title", "test"); print "\n"; ?>
运行命令:php worker.php & php worker1.php & php worker2.php &php client.php
如果我没有启动gearmand 则没有接受到任务,更不要谈分发任务了,如果我启动gearmand -d -L 127.0.0.1 -p 5566,则会打印出work return,证明第一个工作服务器接受到任务并运行了,如果我把5566端口的gearmand进程杀掉,运行5555端口的进程则会打印出worker1 return,并不会因为5566服务器停掉就无法处理,如果同时开启5566,5555,5577端口的服务器,则会运行5577服务器,打印出work2 return,(同时开启的时候应该是默认执行client.php里addServer的最后一个配置的服务器)。
标签:
原文地址:http://www.cnblogs.com/tudou1223/p/4536277.html