php.ini中max_execution_time
的值对cli
环境无效,但可以在程序中是可以被修改并生效的,如set_time_limit()
方法。
正常来讲,没有人明知是cli
环境的情况下,写代码时去修改这个值,但webman
承接传统的php生态,难免某个第三方包会去修改它,或者一些老项目代码迁移有遗留。
而且这个问题不好排查,比如我遇到问题是某个上传文件的地方set_time_limit()
,你必须调用过这个上传文件的接口才会触发此问题,过一段时间进程就自动退出重启。
在每次请求结束后调用一次set_time_limit(0)
,应该对性能影响不大吧。
框架就不加
set_time_limit(0)
这个了。如果出现
Maximum execution time
类似的报错,直接代码里搜下set_time_limit
去掉,或者自己在请求结束后调用下set_time_limit(0)
就好了。直接修改代码不好,万一是composer的包,修改了升级又恢复,只能弄个中间件处理一下了