2017-07-06 15 views
0

私はGuzzle Asyncプールを使用していますが、プールを使用して返品を取得する方法については、ドキュメントに記載されていないようです。ドキュメントを1としてGuzz get pool on result

$client = new Client(); 

$requests = function ($total) use ($client) { 
    $uri = 'http://localhost/'; 
    for ($i = 0; $i < $total; $i++) { 
     yield function() use ($client, $uri) { 
      return $client->requestAsync($uri); 
     }; 
    } 
}; 

$pool = new Pool($client, $requests(100)); 

がどのように私はすべての返信を消費する$poolを使用することができますか?

答えて

0

これにはPool::batch()メソッドを使用します。一度に100要求を発火させないように並行性を制限することも検討してください。

$responses = Pool::batch(
    $client, 
    $requests(100), 
    ['concurrency' => 5] 
);