PHP-Guzzle异步、并发

参考:Guzzle文档

PHP-Guzzle是一个HTTP客户端,可以使用它来发送各种HTTP请求。

并发请求一

$promises = [
            'key1' => $client->getAsync($website1),
            'key2' => $client->getAsync($website2),
            'key3' => $client->getAsync($website3),
        ];
$results = \GuzzleHttp\Promise\unwrap($promises);
foreach ($results as $key => $result) {
	doSomething();
	// results是promises的响应结果数组,键与promises的键相同
}

并发请求二

$websiteRequests = function () use ($websites) {
	foreach ($websites as $website) {
    	yield new Request('GET', $website);
    }
};
$pool = new Pool($client, $websiteRequests(), [
	'concurrency' => 20,
    'fulfilled' => function ($response, $index) use (&$websites) {
     	doSomething();
        // 对每个响应response进行处理,填充websites
     },
    'rejected' => function ($reason, $index) {
		// 失败的请求
	}]);
$promise = $pool->promise();
$promise->wait();  
// 等待请求完成
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值