在 laravel 中,可通过 `ini_set(‘max_execution_time’, ‘0’)` 取消 php 脚本的最大执行时间限制,使路由(如常驻服务接口)持续运行而不被“maximum execution time exceeded”中断。需配合 web 服务器配置与进程管理策略使用。
Laravel 默认运行于传统请求-响应模型下,而“永远不终止”的路由(例如模拟长轮询、心跳服务或轻量级守护任务)本质上违背了该模型的设计初衷。尽管技术上可通过 PHP 配置绕过超时限制,但必须谨慎评估其适用性与风险。
✅ 正确设置无时限执行:
在路由处理逻辑(如控制器方法)开头,立即调用:
toISOString() . "\n";
ob_flush();
flush(); // 确保实时发送到客户端
// 每 5 秒检查一次(避免 CPU 占满)
sleep(5);
// 【重要】建议加入优雅退出条件(如文件标记、Redis 信号等)
// if (cache('service:stop') === true) break;
}
}
⚠️ 关键注意事项: