将 id 添加到 Guzzle 请求
Add id to Guzzle Request
如何向池中发送的 guzzle 请求添加一些元数据?我需要为请求添加 id 以确定将哪个请求分配给响应。我想要这样的东西 - 将 id 设置为 request 并将其从 response.Set id 获取到 Header 似乎不是个好主意。请帮忙。
$requests = function ($total) {
$uri = 'http://127.0.0.1:8126/guzzle-server/perf';
for ($i = 0; $i < $total; $i++) {
$myAdditionalId = $i;
yield new Request('GET', $uri, $myAdditionalId);
}
};
$pool = new Pool($client, $requests(100), [
'concurrency' => 5,
'fulfilled' => function (Response $response, $index) {
echo $response->getMyAdditionalId();
// this is delivered each successful response
},
'rejected' => function (RequestException $reason, $index) {
// this is delivered each failed request
},
]);
我是这样解决这个问题的:
$requests = function ($total) {
$uri = 'http://127.0.0.1:8126/guzzle-server/perf';
for ($i = 0; $i < $total; $i++) {
$myAdditionalId = $i;
$promise = $client->getAsync($uri);
$promise->then(function () use ($myAdditionalId){
//add callback with function on success
echo $myAdditionalId;
});
yield function()use($promise){return $promise;};
}
};
$pool = new Pool($client, $requests(100), [
'concurrency' => 5,
'rejected' => function (RequestException $reason, $index) {
// this is delivered each failed request
},
]);
如何向池中发送的 guzzle 请求添加一些元数据?我需要为请求添加 id 以确定将哪个请求分配给响应。我想要这样的东西 - 将 id 设置为 request 并将其从 response.Set id 获取到 Header 似乎不是个好主意。请帮忙。
$requests = function ($total) {
$uri = 'http://127.0.0.1:8126/guzzle-server/perf';
for ($i = 0; $i < $total; $i++) {
$myAdditionalId = $i;
yield new Request('GET', $uri, $myAdditionalId);
}
};
$pool = new Pool($client, $requests(100), [
'concurrency' => 5,
'fulfilled' => function (Response $response, $index) {
echo $response->getMyAdditionalId();
// this is delivered each successful response
},
'rejected' => function (RequestException $reason, $index) {
// this is delivered each failed request
},
]);
我是这样解决这个问题的:
$requests = function ($total) {
$uri = 'http://127.0.0.1:8126/guzzle-server/perf';
for ($i = 0; $i < $total; $i++) {
$myAdditionalId = $i;
$promise = $client->getAsync($uri);
$promise->then(function () use ($myAdditionalId){
//add callback with function on success
echo $myAdditionalId;
});
yield function()use($promise){return $promise;};
}
};
$pool = new Pool($client, $requests(100), [
'concurrency' => 5,
'rejected' => function (RequestException $reason, $index) {
// this is delivered each failed request
},
]);