【发布时间】:2015-06-14 21:10:25
【问题描述】:
我想使用 PHP 库 GuzzleHttp 进行非阻塞 REST API 调用。
- 我有一个 REST API 服务器 (
http://api.example.com/v1/wait) -
wait方法不做任何事情,除了sleep(10)。 - 我正在使用
future参数从 PHP CLI 运行以下命令:
$client = new \GuzzleHttp\Client;
$response = $client->get('http://api.example.com/v1/wait', [
'future' => true,
'body' => [
'some' => 'var'
],
]);
echo 'OK';
我希望“OK”会立即回显,而无需等待 REST API 调用完成。相反,执行会暂停 10 秒 - 这是 REST wait() 方法中的 sleep() 持续时间。
根据 Guzzle 文档:
你可以通过将future request选项设置为true来发送异步请求
我对调用完成回调不感兴趣,我只想给 API 一些(可能是缓慢的)任务来处理并继续生活。
我也尝试过 cURL 自己的多请求,其他几个库 - 结果是一样的。执行被阻塞,等待来自 API 服务器的响应。
那么,可能是什么问题?
谢谢!
【问题讨论】: