QueryList采集一段时间后 Document with ID '71a5e8a9e18113c4e26bde60b6d002d8' isn't loaded. Use phpQuery::newDocument($html) or phpQuery::newDocumentFile($file) first.

1、QueryList采集一段时间后
    提示:Document with ID '71a5e8a9e18113c4e26bde60b6d002d8' isn't loaded. Use phpQuery::newDocument($html) or phpQuery::newDocumentFile($file) first.

    此类错误一般是因为脚本中涉及大量的QueryList对象调用,而又没有及时释放资源的内存占用,导致内存溢出引起的,解决方法就是尽量重用同一个QueryList对象并及时释放资源的内存占用:

 

    错误示范:

foreach ($urls as $url) {
    QueryList::get($url)->rule([
      //....
    ])->query()->getData();
}

正确写法:
$ql = QueryList::rule([
      //....
    ]);
foreach ($urls as $url) {
    $ql->get($url)->query()->getData();
    // 释放资源,销毁内存占用
    $ql->destruct();
}

我之前就是遇到这个错误,耽误很长时间
官方文档:http://www.querylist.cc/docs/api/v4/destruct
 
posted @ 2019-05-12 15:35  Einstein-follower  阅读(43)  评论(0)    收藏  举报