因为web服务器有运行时间限制,所以只要采集执行时间太长都会导致程序中断,需要修改web服务器的超时时间
IIS服务器:
桌面>计算机>右键>管理>服务和应用程序>IIS>根目录>FastCGI 设置>双击"php-cgi.exe">活动超时
apache服务器:
apache目录confextrahttpd-default.conf,修改Timeout
nginx服务器:
nginx目录conf ginx.conf,修改 fastcgi_connect_timeout
修改以上的参数值可让采集不再中断,修改完后记得重启服务器!
其他服务器请自行百度
如果你是虚拟主机无法修改配置,唯一方法就是设置采集数量,每次不要采集太多,一般web服务器运行时间为30秒,尽量不要超时!
你这个还是要开个页面一直开机抓取,应该做到服务器后台计划任务自动抓取,这样就是真的无人值守。 貌似采集数量设置少一些可以采集,可以2000-4000-6000一个一个试试 还有人有解决的方法没?都不行 后台采集为啥不做成 php守护进程的方式。我看代码里面有应该加入命令行启动守护进程。前台点击后台采集就把任务提交到队列里面有队列去执行 今天试了一下,中断的几率太高了,无法做到无人值守的抓取。还是应该使用队列加守护的方式 本帖最后由 zmh886 于 2019-5-27 21:48 编辑
我用的是直接弄个网页自刷新执行采集,可以做到无人值守一直抓取。
代码大概如下:设置的2分钟采集间隔,下面代码设置的125秒刷新一次。
采用自动采集方式,然后把触发采集地址添加到定时访问url任务里面!就可以实现自动采集。就是停止运行也可以采集! 之前用tp5的queue做过队列自动采集的。有卡死的情况不稳定。后来加了supervisor好多了。这块蓝天应该借鉴一下
今天发现我的方法还有个小问题,必须是先登录管理员,才能使用这样指定任务的方式采集。
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秒刷新一次。
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta http-equiv="refresh" content="125">
- <div id='numDiv'>...</div>
- <script src="http://www.lz2.cc/caiji/index.php?s=/admin/Task/collect&id=3"></script>
- <script type="text/javascript">
- var num=125;
- var interval=setInterval(function(){
- if(num==0){
- clearInterval(interval);
- }
- numDiv.innerHTML=num--;
- numDiv.innerHTML=numDiv.innerHTML+"秒后刷新本页面";
- },1000);
- </script>
- </body>
老码农 发表于 2019-5-28 09:42
你这个还是要开个页面一直开机抓取,应该做到服务器后台计划任务自动抓取,这样就是真的无人值守。 ...
采用自动采集方式,然后把触发采集地址添加到定时访问url任务里面!就可以实现自动采集。就是停止运行也可以采集! 之前用tp5的queue做过队列自动采集的。有卡死的情况不稳定。后来加了supervisor好多了。这块蓝天应该借鉴一下
老码农 发表于 2019-5-28 09:42
你这个还是要开个页面一直开机抓取,应该做到服务器后台计划任务自动抓取,这样就是真的无人值守。 ...
今天发现我的方法还有个小问题,必须是先登录管理员,才能使用这样指定任务的方式采集。