当前位置:首页 > PHP > 正文内容

php关闭浏览器继续运行

高老师6年前 (2020-03-02)PHP1907
//设置客户端断开依然运行
ignore_user_abort(true);

//设置脚本不超时
set_time_limit(0);

//死循环每隔1秒访问一次网址
while (true)
{
    sleep(1);

    @file_get_contents('http://xingxinghan.cn/?id=5');
}

上面的代码我在windows下的phpenv集成环境测试通过,但是在线上刷数据时出现异常,nginx 502 后php停止运行,一脸懵逼。看了下网上说的可能,逐一排查:

(1).修改php.ini的max_execution_time时间,我一看就知道这个不行,因为set_time_limit已经设置脚本执行不超时,但是还是测试下嘛,将max_execution_time修改为3600秒,1小时,依然不行。

(2).fpm的request_terminate_timeout配置,request_terminate_timeout 适用于当max_execution_time由于某种原因无法终止脚本的时候,会把这个php-fpm请求干掉,改为1小时果真可以了,哈哈

在fpm中request_terminate_timeout才是真正控制进程执行时间的。

提示:通过ignore_user_abort函数设置了当客户端浏览器关闭当前脚本继续运行,但是依然会受到php脚本超时的时间限制,于是再设置下超时时间即可。启动后会占用一个cgi进程,及其不优雅。

看更详细的版本,看我的另外一篇文章https://blog.20230611.cn/?id=572

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/127.html

分享给朋友:

“php关闭浏览器继续运行” 的相关文章

php将html转为pdf,php将html页面导出pdf

php将html转为pdf,php将html页面导出pdf

首先下载wkhtmltox-0.12.4_linux-generic-amd64.tar.xz   (不要下载RPM包,依赖太多,需要x-server支持),并解压,执行测试运行正常tar wkhtmltox-0.12.4_linux-generic-amd64.tar.xzcd...

PHP模拟并发请求

PHP模拟并发请求

原理:使用curl_init()创建多个请求实例,再使用curl_multi_init()批量执行创建的多个请求实例。文件1:curl.php<?php  $threads=500;//并发请求次数 $url='http://blog.cn/index.php?';...

php抽奖概率算法

php抽奖概率算法

<?php /*  *算法学习自百度.只是学习和记录  */ header("Content-type:text/html;charset=utf-8"); //1.设置奖项,id是奖项id,name是中奖名称,v是中奖概率 $arr =&n...

php 将数组键值转为变量

php 将数组键值转为变量

<?php $data=array('a'=>1,'b'=>2,'c'=>3,'d'=>4); extract($data); var_dump($a,$b,$c,$d); ?>在人人商城中捡到的...

php异步执行,php后台运行,如何在windows下让php后台运行

php异步执行,php后台运行,如何在windows下让php后台运行

如果想在windows中执行php,并且让php脚本在后台运行,可以用下面的cmd命令start /b php  D:\wwwroot\default\demo1\run.php例如上面的命令意思后台运行run.php,如果想用php编写异步代码: ...

php redis事务

php redis事务

概念请参考w3school文章: redis watch ,redis exec (看完基本秒懂)(1)基本事务://连接本地的 Redis 服务 $redis = new Redis(); $redis->con...