PHP 后台定时循环刷新某个页面 屏蔽apache意外停止
PHP 后台定时循环刷新某个页面
如果间隔时间过长的话 会出现apache自动停止的现象。出现的原因则是设置了
<IfModule mpm_winnt_module>
ThreadsPerChild 450
MaxConnectionsPerChild 3000
</IfModule>
错误日志报错
[mpm_winnt:notice] [pid 126236:tid 316] AH00362: Child: Waiting 270 more seconds for 3 worker threads to finish.
[mpm_winnt:notice] [pid 126236:tid 316] AH00362: Child: Waiting 240 more seconds for 3 worker threads to finish.
.......
[pid 126236:tid 316] AH00363: Child: Terminating 2 threads that failed to exit.
[pid 126236:tid 316] AH00364: Child: All worker threads have exited.
然后直接停止了进程 导致循环结束
//此文件保存在为 sleep.php //定义一个自动刷新的时间 $time = 500; //定义一个每次请求的最大运行时间 $time_limit = 200; ignore_user_abort(True); $rest_time=intval($_GET["time"]); //本PHP访问的URL $base_url=‘http://domain.com/sleep.php‘; //自动刷新的页面 $get_url=‘http://www.baidu.com‘; if($rest_time==0)$rest_time=$time; //延长PHP脚本执行的时间 set_time_limit(3601); //加载HttpClient类 require_once ‘HttpClient.php‘; //如果时间比较长 需要多次的请求 防止被意外关闭 if($rest_time>$time_limit){ //延时 sleep($time_limit); //请求本url $rest_time=$rest_time-$time_limit; HttpClient::quickGet($base_url.‘?time=‘$rest_time); exit(); }else{ //延时 sleep($rest_time); HttpClient::quickGet($get_url); HttpClient::quickGet($base_url); }
初次写 欢迎指正
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。