如何在PHP中正确地向API发出一千个请求

时间:2017-08-09 12:19:56

标签: php wordpress api sleep array-splice

我必须向IGDB API提出一千个请求,我在解决这个问题时遇到了麻烦。每次我运行我的脚本,它加载一段时间然后我的网站主机告诉我“错误:有一个问题......似乎出了问题。” (我知道不是很有帮助。)

由于我认为这个问题来自于请求数量,我尝试减少它,但我减少了60个请求,每个请求间隔4秒,但仍然没有成功。

我的最新尝试:

$splice = array_splice($array, 0, 60); 

foreach($splice as $key => $value){

    $request = wp_remote_get('https://igdbcom-internet-game-database-v1.p.mashape.com/games/?fields=*&search='.$value['Name'],
                array( 'headers' => array( 
                             'Accept' => 'application/json',
                             'X-Mashape-Key' => 'Key' )));

    $body = wp_remote_retrieve_body($request);

    $data_api = json_decode($body, true);

    sleep(4);

}

有谁知道我做错了什么?我的想法已经不多了......

1 个答案:

答案 0 :(得分:0)

这很可能只是来自PHP或服务器的超时响应。 虽然有办法绕过这些证券,但它们并非一无是处。

您应该使用CLI执行货物查询,而不是CGI。 CGI访问适用于普通用户,无论他们的角色/权限如何。作为开发人员,您可以访问代码和服务器(如果您在团队中,至少可以访问您的系统管理员)。您应该使用命令行来执行这些查询。它将花费更少的时间,失败的机会更少,并且您将立即打印错误日志,除非您将它们重定向到文件。