我正在尝试追踪一个看起来非常奇怪的错误。我有一个大致如下结构的应用程序:
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/