php - 即使设置了 set_time_limit(0),PHP 脚本也能终止吗?

标签 php

我正在尝试追踪一个看起来非常奇怪的错误。我有一个大致如下结构的应用程序:

set_time_limit(0);
register_shutdown_function('logScriptCompletion');

function logScriptCompletion() {
   log('script completed');
}

log('script started');

// do some calculations periodically printing out progress

脚本可能需要一段时间才能运行。期望的行为是脚本继续计算直到结束,即使按下停止按钮或断开连接也是如此。 99% 的时间它都按预期工作。

偶尔(可能每隔几个月/几千次请求)计算不会一直运行,但“脚本启动”和“脚本完成”都会被记录下来,并且没有其他 fatal error 或其他明显错误(我启用了完整的日志记录)。

我怀疑这可能与服务器的连接被丢弃有关,但没有确凿的证据可以证实。我在 Linux 上运行 Apache 2/PHP 5.2.6。

有没有其他人看到过类似的问题并可以帮助阐明这一点?

最佳答案

当然!您还应该使用 ignore_user_abort() function 以确保。

关于php - 即使设置了 set_time_limit(0),PHP 脚本也能终止吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2111726/

相关文章:

php - 为自定义帖子类型添加自定义样式表

php - 在链接上使用 "click"的 PHP 脚本

php - mysql select where in select as 变量

php - 如何使用Codeigniter访问第三方文件夹中的smarty库?

php - 如何禁用 ORM 并完全排除从 Symfony 应用程序到 mySQL 的任何连接?

javascript - 如何通过我用php制作的jQuery调用增量id

php - AddEmbeddedImage() 函数嵌入内联图像以及附加与附件相同的图像

php - 将 json 从 curl 存储到 mysql 表

php - mySQL 5.7 无法与组正常工作

php - 找不到Docker命令中Alpine下的PHP7