use GuzzleHttp\Pool; use GuzzleHttp\Client; use GuzzleHttp\Psr7\Request;
//向接口发送上传小说 public function sendChapter($data){ $client = new \GuzzleHttp\Client(); $requests = function () use ($data,$client) { foreach ($data as $item){ yield function() use ($client, $item) { return $client->request('POST', $this->chapter_upload_url, [ 'form_params' => $item ]); }; } }; $responses = []; $bad_responses = []; $pool = new \GuzzleHttp\Pool($client, $requests(), [ 'concurrency' => 20, 'fulfilled' => function ($response, $index) use (&$responses, &$requests) { $responses[$index] = $response; }, 'rejected' => function ($reason, $index) use (&$responses) { $bad_responses[$index] = []; }, ]); $res = $pool->promise()->wait(); //坏的结果返回处理 foreach ($bad_responses as $key=>$li){ } //返回处理 foreach ($responses as $key=>$li){ } return $responses; }