php 消息队列:
Yar_Client 使用:
1,Yar_Client : php扩展框架(鸟哥的yar框架),可支持并发的 rpc 框架
通过 yar 初识RPC, 远程调用服务(RPC)和消息队列(Message Queue)
CI框架使用:
defined('MQ_RPC_URL') OR define('MQ_RPC_URL', 'http://mq.xxx.com');
$client = new Yar_Client(MQ_RPC_URL . '/api_xxx.php');
2, Yar_Client官方解释:
Yar_Client::setOpt — 设置调用的配置(设置调用远程服务的一些配置, 比如超时值, 打包类型等.)
<?php
$cient = new Yar_Client("http://host/api/");// 调用远程服务中方法(我的理解)
// Set timeout to 1s = 可选, 设置超时时间, 默认1秒 $client->SetOpt(YAR_OPT_CONNECT_TIMEOUT, 1000);
// Set packager to JSON = 设置json包 $client->SetOpt(YAR_OPT_PACKAGER, "json");
/* call remote service */ $result = $client->some_method("parameter");
具体使用: /* call remote service */ $result = $client->report("数据库表", 参数一, 参数二);// report为远程服务中方法?>
yar扩展安装:
pecl install yar
vim /etc/php.ini php.ini --> php 配置文件 加上extension=yar.so
查看支持的配置:php --re yar
具体实例:
<?php
defined('MQ_RPC_URL') OR define('MQ_RPC_URL', 'http://mq.xxx.com');
try {
$client = new Yar_Client(MQ_RPC_URL . '/api_xxx.php');
$client->SetOpt(YAR_OPT_CONNECT_TIMEOUT, 1000);
$result = $client->report("数据库表", 参数一, 参数二);// report为远程服务中方法
} catch (Exception $e) { print $e->getMessage();exit(); } ?>