Php 使用Guzzle 6并发调用并跟踪额外参数

Php 使用Guzzle 6并发调用并跟踪额外参数,php,concurrency,promise,guzzle,guzzle6,Php,Concurrency,Promise,Guzzle,Guzzle6,因此,我使用Guzzle 6进行不确定的并发api调用,但我想做的一件事是跟踪promise当前正在处理的数组值,因为我最初是基于数据库查询结果处理api调用的。在那之后,我想用从api得到的任何东西将值更新回数据库 使用GuzzleHttp\Pool; 使用http\Client; 使用http\Psr7\Request; $client=新客户端(); $requests=函数(){ $uri='1http://127.0.0.1:8126/guzzle-服务器/性能'; foreach($

因此,我使用Guzzle 6进行不确定的并发api调用,但我想做的一件事是跟踪promise当前正在处理的数组值,因为我最初是基于数据库查询结果处理api调用的。在那之后,我想用从api得到的任何东西将值更新回数据库

使用GuzzleHttp\Pool;
使用http\Client;
使用http\Psr7\Request;
$client=新客户端();
$requests=函数(){
$uri='1http://127.0.0.1:8126/guzzle-服务器/性能';
foreach($database\u结果为$res){
/*res数组包含
['id'=>'db id','query'=>'get query array'];
*/
$url=$uri.'?'。http_build_query($res['query']);
生成新请求('GET',$url);
}
};
$pool=新池($client,$requests()[
“并发”=>5,
“已完成”=>函数($response,$index){
/**
*在这里,我希望能够以某种方式
*检索当前数据库id的响应
*这样我就可以很明显地更新任何东西
*我想在db那边
*/
},
“拒绝”=>函数($reason,$index){
/**
*在这里,我希望能够以某种方式
*检索当前数据库id的响应
*这样我就可以很明显地更新任何东西
*我想在db那边
*/
},
]);
//启动转移并创建承诺
$PROMITE=$pool->PROMITE();
//强制完成请求池。
$promise->wait();
...
这方面的任何帮助都将是惊人的。我想得到如何最好地处理这种情况的建议。我更愿意以一种聪明、合乎逻辑的方式来做这件事

谢谢你的帮助

所以我想出来了

基本上

    $requests = function () {
    $uri = 'http://127.0.0.1:8126/guzzle-server/perf';
    foreach($database_result as $key => $res) {

        /*the res array was updated to be  
        ['id' => 'get query array'];
        */

        $url = $uri . '?' . http_build_query($res);

        //here is the key difference in change
        yield $key => new Request('GET', $url);
    }
};
现在,稍后池功能中的索引将包含所需的索引

希望这有帮助

参考: