Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么浏览器窗口关闭只有一半时间有效_Php_Mysql_Browser_Tabs_Report - Fatal编程技术网

Php 为什么浏览器窗口关闭只有一半时间有效

Php 为什么浏览器窗口关闭只有一半时间有效,php,mysql,browser,tabs,report,Php,Mysql,Browser,Tabs,Report,我有一个大型的php/mysql应用程序,其中包含大量的sql查询,这些查询生成report,报告完成后,通过报告链接发送电子邮件 唯一的问题是,如果我让窗口保持打开状态,那么报告将完全生成,并且我会收到一封带有报告链接的电子邮件,但是当我关闭浏览器窗口时,工具将生成一半的数据,并发送一封电子邮件 主要是为什么窗口关闭只有一半时间有效。您可以结合使用忽略用户中止和设置时间限制: ignore_user_abort(true); // continue to run after client di

我有一个大型的
php/mysql
应用程序,其中包含大量的
sql
查询,这些查询生成
report
,报告完成后,通过报告链接发送电子邮件

唯一的问题是,如果我让
窗口保持打开状态,那么报告
将完全生成
,并且我会收到一封带有报告链接的电子邮件,但是当
我关闭浏览器
窗口时,工具将生成
一半的数据
,并发送一封电子邮件


主要是为什么窗口关闭只有一半时间有效。

您可以结合使用忽略用户中止和设置时间限制:

ignore_user_abort(true); // continue to run after client disconnects
set_time_limit(0); // infinite time limit

您可以估计脚本所需的秒数,并为其增加更多时间,而不是无限时间限制。这样脚本就没有机会挂起进程。

这就是为什么我们不从浏览器执行长进程的原因。使用队列。你能告诉我更多关于
队列的信息吗
,一个链接会很有帮助。谢谢!我无法链接到任何比Google for上的结果更有用的东西。单独使用这两个函数时,尤其是在一起使用时,你必须非常小心。如果您的代码错误地挂起或进入无限循环,它将不会停止,直到有人登录到服务器并手动终止该进程。