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上的结果更有用的东西。单独使用这两个函数时,尤其是在一起使用时,你必须非常小心。如果您的代码错误地挂起或进入无限循环,它将不会停止,直到有人登录到服务器并手动终止该进程。