1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
static function multiRequest($data){ $client = new Client( ['allow_redirects'=>true, 'timeout'=>120000]); $promises = []; $mappings = []; for($i=0;$i<count($data);$i++){ \Log::info('async_url:'.$data[$i]['request_url']); $promises[$i] = $client->getAsync($data[$i]['request_url']); } $results = Promise\unwrap($promises); // \Log::info('multy_$results');\Log::info($results); $j = 0; foreach($data as $key=>&$v){ $res = $results[$key]->getBody()->getContents(); $res = json_decode($res,true); \Log::info('res:'.$key.' res:'.json_encode($res)); $mappings[$key]['old_url'] = $data[$key]['old_url']; if($res['code'] == 1){ $mappings[$key]['new_url'] = $res['data']['url']; }else{ \Log::info('multiRequest_error_return:'.$data[$key]['old_url'].' res:'.json_encode($res).' request_url:'.$data[$key]['request_url']); return null; } } return $mappings; } |