Ich brauche Hilfe in der folgenden Situation: Ich muss POST-Anfragen an einen API-Endpunkt senden, der Anfragen gleichzeitig behandeln kann. Aber braucht Zeit für jeden. Um die Zeit zu reduzieren, möchte ich mehrere POST-Anfragen gleichzeitig senden.Wie führe ich gleichzeitige POST-Anfragen mit Guzzle aus?
Hier sind einige Code-Fragmente:
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();
Die Callback-Funktionen nach Anforderung aufgerufen werden, aber es ist die POST fehlt Nutzlast. Wie muss ich den GuzzleRequest konfigurieren?