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?