php - 多久 ignore_user_abort(true);坚持?

标签 php

我制作了一个不应该向浏览器返回任何内容的脚本(没有任何回显、打印或带有空格的代码中断,例如 ?> <? ,并且使用 ignore_user_abort(true); 来避免这种情况,一旦浏览器窗口关闭,进程停止。

因此,一旦脚本启动,它就应该运行到最后。

该脚本是为时事通讯设计的,它每 5 秒发送一封电子邮件,以遵守我的提供商的垃圾邮件政策,通过 mail();

也就是说,发生的事情是在工作大约 20 分钟后(电子邮件总数为 1002 封),脚本“崩溃”,没有返回任何错误。

因此我的问题是:使用 ignore_user_abort(true); 运行的脚本是否有生命周期限制? ?

编辑 按照 Hanky(在下面)的建议,我写了一行:

set_time_limit(0);

但问题依然存在

最佳答案

因此,虽然 ignore_user_abort(true); 会在访问者离开页面后阻止脚本停止,但 set_time_limit(0); 会删除时间限制。您还可以更改 php.ini 中的 PHP memory_limit 或通过在 .htaccess 文件中设置类似 php_value memory_limit 2048M 的内容。

为了列出默认的 max_execution 时间,您可以运行 echo ini_get('max_execution_time');(秒)或 echo ini_get('memory_limits');(兆字节) ).

话虽如此,听起来您的 PHP 脚本更适合从 CLI 运行.使用命令行您可以运行 PHP 脚本,这听起来更适合您的使用,从您所描述的情况来看,该脚本实际上并不需要为 Web 浏览器提供任何服务。对于运行后台进程而不是将前端返回给用户的 PHP 脚本,此方法更好。

您只需运行 php script.phpphp -f script.php 即可从命令行运行文件。

关于php - 多久 ignore_user_abort(true);坚持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32859211/

相关文章:

php - 高效的mysql查询产品目录

php/mysql 返回空集

php - tcpdf和数字签名认证

php - Prestashop:在模块后台显示类别树

php - 使用php使用表单更新图像问题

php - 在 php 中将项目插入 mysql

php - 在 ZF2 中如何使 View 函数在 Controller 中运行

php - 如何从推特中的oauth key 获取用户名

php - 替换 PHP session

PHP 处理 IF 语句中的多个子句