加入收藏 | 设为首页 | 会员中心 | 我要投稿 南通站长网 (https://www.0513zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

php用gearman怎样做任务分发的运作?

发布时间:2022-04-14 13:41:17 所属栏目:语言 来源:互联网
导读:文本主要给大家介绍的是php实现gearman任务分发的操作,包括安装gearman、gearman的使用、gearman异步的处理任务和gearman并行的执行多个任务的内容,感兴趣的朋友就继续往下看吧。 一、安装gearman 如: gearman-1.1.2.tgz 安装gearman yum install boost-de
      文本主要给大家介绍的是php实现gearman任务分发的操作,包括安装gearman、gearman的使用、gearman异步的处理任务和gearman并行的执行多个任务的内容,感兴趣的朋友就继续往下看吧。
 
       一、安装gearman
  
       如: gearman-1.1.2.tgz
 
       安装gearman
 
> yum install boost-devel gperf libevent-devel libuuid-devel
> tar xf gearmand-1.1.12.tar.gz
> cd gearmand-1.1.12
> ./configure
> make && make install
       安装gearman的php扩展(建议php版本不要过高,因为php7的gearman扩展目前还没有出来)
 
> yum install autoconf
> tar xf gearman-1.1.2.tgz
> cd gearman-1.1.2
> /data/php56/bin/phpize
> ./configure --with-php-config=/data/php56/bin/php-config
> make && make install
       修改php.ini
 
> vi /data/php56/lib/php.ini
       添加如下两项
 
extension_dir=/data/php56/lib/php/extensions/no-debug-zts-20131226/
extension=gearman.so
       查看扩展
 
> /data/php56/bin/php -m
       二、简单的使用gearman
 
       gearman中请求的处理过程一般涉及三种角色:client->job->worker其中client是请求的发起者。job是请求的调度者,用于把客户的请求分发到不同的worker上进行工作
worker是请求的处理者。比如这里我们要处理client向job发送一个请求,来计算两个数之和,job负责调度worker来具体实现计算两数之和。
 
       首先我们编写client.php
 
<?php
//创建一个客户端
$client = new GearmanClient();
//添加一个job服务
$client->addServer('127.0.0.1', 4730);
//doNormal是同步的,等待worker处理完成返回结果
//建议不要使用do()了
$ret = $client->doNormal('sum', serialize(array(10, 10)));
 
if($ret) {
  echo '计算结果:', $ret, "n";
}
 
       我们先启动gearmand服务
 
> mkdir -p /usr/local/var/log
> gearmand -d
       运行worker文件
 
> /data/php56/bin/php /data/worker.php
       再运行client文件
 
> /data/php56/bin/php /data/client.php

(编辑:南通站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读