php中php-fpm脚本超时如何继续执行?
网友回复
在 PHP 中,如果脚本超时(max_execution_time),默认情况下脚本会停止执行。然而,有时我们希望即使脚本超时,它仍然能够继续运行,尤其是在使用 PHP-FPM 的环境中。以下是实现这一目标的几种方法:
1. 设置 ignore_user_abortPHP 提供了一个函数 ignore_user_abort(),可以用来控制当客户端断开连接时,脚本是否继续执行。
示例代码:<?php解释:ignore_user_abort(true):即使客户端断开连接,脚本也会继续运行。set_time_limit(0):将脚本的最大执行时间设置为无限制。
// 忽略用户断开连接后脚本停止执行
ignore_user_abort(true);
// 设置脚本运行时间无限制
set_time_limit(0);
// 模拟长时间运行的任务
while (true) {
file_put_contents('log.txt', date('Y-m-d H:i:s') . "\n", FILE_APPEND);
sleep(5); // 每 5 秒记录一次日志
}
这种方法适用于需要长时间运行的后台任务。
2. 使用 PHP-FPM 的 fastcgi_finish_requestfastcgi_finish_reque...
点击查看剩余70%