phantomjs导致cpu使用率过高
phantomjs导致cpu使用率过高
场景
使用casperjs,phantomjs的封装
连续下载多个网页
php使用exec调用casperjs脚本
所抓取的网页都是同一个网站的一个类型页面,需要模拟点击一个按钮跳转到新页面(要下载的就是这个新页面)
问题
有时候使用top命令可以看到phantomjs的cpu使用率过高(将近100%)
描述
有个需求是这样的,下载一连串的html页面,为了支持phantomjs,我采用了最新的casperjs(不稳定版)
php:
foreach() {
$result = downloadHTML();
if $result == false {
retry;(重试3次)
}
}
casper.js
var casper = require('casper').create();
casper.start(url);
fs.write(htmlFile, this.getHTML(), 'w');
if success {
exit(0);
} else {
exit(1);
}
类似这样的操作,结果发现有时候phantomjs卡住了,然后cpu使用率达到了100%,想问问我代码的思路有问题吗?如何有效防止?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
找到原因了,因为在监听新窗口时候按照了它官方的写法
然后改成
妈蛋,按照官方的写法,脚本在一些情况下是有问题的,但是脚本出错了以后phantomjs没有退出,反而导致了cpu使用率高达了将近100%。
请教下phantomjs抓取了一些网址之后导致CPU负载过高,导致云主机挂机,怎么有效解决?
做好异常处理,一旦发生异常就退出phantomjs进程