我有一个PHP脚本,它在URL的数据库表中循环,并为每个URL调用一个PHP cURL,抓取数据,然后将数据保存到不同的数据库中。代码:
$results = $wpdb->get_results("SELECT * FROM urls ORDER BY id DESC");
foreach($results as $row) {
//PHP CURL STUFF HERE
}
上述脚本使用cPanel的CRON每12分钟运行一次。我的问题是a)需要更频繁地抓取URL以获得更好的结果,因为有时循环需要时间才能完成,而有些URL在12分钟内没有覆盖。
现在。。以上策略是唯一的策略还是有更好的解决方案,如多卷曲?我在想我是否可以拥有script.php之类的东西?url=1,然后有一个专门的CRON或类似的东西用于这个url,所以我可以跟踪和检查这个确切的url发生了什么。这可能吗?如果是,如何?如果数据库中有300个URL,我无法为其创建300个CRON:(
期待您的意见:)=
多次调用PHP不是一个好的解决方案。为什么你不能在12分钟内完成300次请求?(真的很慢)
您需要添加一个超时,例如
curl_setopt($ch, CURLOPT_TIMEOUT, 10); //Each url will take 10 sec max
然后显示一个包含URL的日志,以查找慢速请求使用curl_errno()
检测错误
代码28为超时。