cli 下php脚本超时时间的疑惑

发布于 2022-09-04 15:16:49 字数 594 浏览 33 评论 0

业务场景

linux服务器通过supervisor 一直守护一个php进程, like: php xxxScript.php,该脚本一直监听RabbitmqMQ消息,有消息,则分析消息任务类型,like 给我去发邮件去... ,Then,xxxScript.php就会实例化业务类并循环处理数据不断给用户发邮件。问题来了:发邮件可能发个十几二十多分钟,禁不住联想到万一以后碰到个处理个把小时的耗时任务,脚本超时怎么办???

问题:

1. cli 执行php脚本会不会有个超时时间(强调非web服务器---不说怕误解)?
2. 超时时间由谁的哪些参数决定的?
3. 听说php脚本设置set_time_limit(0)就不会超时,is this true?

5. 什么一次不行再来一次啥的之类的回答不要写了吧....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

谎言 2022-09-11 15:16:49

max_execution_time
这设置了脚本被解析器中止之前允许的最大执行时间,单位秒。 这有助于防止写得不好的脚本占尽服务器资源。 默认设置为 30。 从命令行运行 PHP 时,默认设置为 0。

参考文档地址:http://php.net/manual/zh/info...

赤濁 2022-09-11 15:16:49

cli执行不会超时的

心不设防 2022-09-11 15:16:49

我觉得这个事情可以交给别的语言python去做,处理耗时任务php不行,毕竟前边还要应对客户请求呢,python再根据任务的不同去调用不同的脚本就行了,这样就解决了

殤城〤 2022-09-11 15:16:49

我觉得你的需求应该是用子进程来处理任务,父进程接收消息,创建子进程去处理相应的任务。
这样如果因为任何原因子进程没有执行完,父进程依然在,可以继续处理剩余任务。
即使你的脚本没有超时,目前这种情况,耗时太长的任务也会影响业务的正常处理的。

故事还在继续 2022-09-11 15:16:49

命令行方式是不会超时的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文