3
我需要在以下情况下的帮助: 我必须发送POST请求到API端点,它可以同时处理请求。但每个都需要时间。为了减少时间,我想一次发送多个POST请求。如何使用Guzzle执行并发POST请求?
下面是一些代码片断:
use GuzzleHttp\Pool as GuzzlePool;
use GuzzleHttp\Client as GuzzleClient;
use GuzzleHttp\Psr7\Request as GuzzleRequest;
[...]
foreach ($aRequestParams as $sRequestParam) {
$aRequestList[] = new GuzzleRequest('POST', $sRoute,
[
// 'form_params' => [
// 'jsonString' => $sRequestParam
// ]
'body' => $sRequestParam
// 'multipart' => [
// [
// 'name' => 'jsonString',
// 'contents' => $sRequestParam
// ]
// ]
]
);
}
$oGuzzlePool = new GuzzlePool(new GuzzleClient(), $aRequestList, [
'concurrency' => 8,
'fulfilled' => [$this, 'processFulfilledCallback'],
'rejected' => [$this, 'processRejectedCallback']
]);
$oPromise = $oGuzzlePool->promise();
$oPromise->wait();
回调函数所请求之后称为,但存在的POST负载丢失。我该如何配置GuzzleRequest?