因为web服务器有运行时间限制,所以只要采集执行时间太长都会导致程序中断,需要修改web服务器的超时时间
IIS服务器
桌面>计算机>右键>管理>服务和应用程序>IIS>根目录>FastCGI 设置>双击"php-cgi.exe">活动超时

蓝天采集器采集中断、自动采集无效、图片下载不了,解决方法!蓝天采集器采集中断、自动采集无效、图片下载不了,解决方法!

apache服务器:
apache目录confextrahttpd-default.conf,修改Timeout

nginx服务器:
nginx目录conf ginx.conf,修改 fastcgi_connect_timeout

修改以上的参数值可让采集不再中断,修改完后记得重启服务器!
其他服务器请自行百度
如果你是虚拟主机无法修改配置,唯一方法就是设置采集数量,每次不要采集太多,一般web服务器运行时间为30秒,尽量不要超时!


zmh886 发表于 2019-5-27 21:46
我用的是直接弄个网页自刷新执行采集,可以做到无人值守一直抓取。
代码大概如下:设置的2分钟采集间隔, ...

你这个还是要开个页面一直开机抓取,应该做到服务器后台计划任务自动抓取,这样就是真的无人值守。 貌似采集数量设置少一些可以采集,可以2000-4000-6000一个一个试试 还有人有解决的方法没?都不行 后台采集为啥不做成 php守护进程的方式。我看代码里面有应该加入命令行启动守护进程。前台点击后台采集就把任务提交到队列里面有队列去执行 今天试了一下,中断的几率太高了,无法做到无人值守的抓取。还是应该使用队列加守护的方式 本帖最后由 zmh886 于 2019-5-27 21:48 编辑
老码农 发表于 2019-5-27 18:17
今天试了一下,中断的几率太高了,无法做到无人值守的抓取。还是应该使用队列加守护的方式 ...

我用的是直接弄个网页自刷新执行采集,可以做到无人值守一直抓取。
代码大概如下:设置的2分钟采集间隔,下面代码设置的125秒刷新一次。
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  2. <meta http-equiv="refresh" content="125">


  3. <div id='numDiv'>...</div>
  4. <script src="http://www.lz2.cc/caiji/index.php?s=/admin/Task/collect&id=3"></script>
  5. <script type="text/javascript">
  6. var num=125;
  7. var interval=setInterval(function(){
  8. if(num==0){
  9. clearInterval(interval);
  10. }
  11. numDiv.innerHTML=num--;
  12. numDiv.innerHTML=numDiv.innerHTML+"秒后刷新本页面";
  13. },1000);
  14. </script>
  15. </body>
复制代码
老码农 发表于 2019-5-28 09:42
你这个还是要开个页面一直开机抓取,应该做到服务器后台计划任务自动抓取,这样就是真的无人值守。 ...

采用自动采集方式,然后把触发采集地址添加到定时访问url任务里面!就可以实现自动采集。就是停止运行也可以采集! 之前用tp5的queue做过队列自动采集的。有卡死的情况不稳定。后来加了supervisor好多了。这块蓝天应该借鉴一下
老码农 发表于 2019-5-28 09:42
你这个还是要开个页面一直开机抓取,应该做到服务器后台计划任务自动抓取,这样就是真的无人值守。 ...

今天发现我的方法还有个小问题,必须是先登录管理员,才能使用这样指定任务的方式采集。
相关文章