我使用 shell_exec 从命令行运行 Python 脚本,为了测试,Python 脚本只是等待一段时间然后返回 True:def test(minutes):
import time
time.sleep(minutes*60)
return True据我测试,如果时间段是 30 分钟或 60 分钟,结果会成功返回给 PHP,但是如果我将其设置为 80 分钟,PHP 不会收到任何结果,甚至不会收到错误消息。php.ini 中的 max_execution_time 是 30000 秒,足够长了。环境:带有 IIS 的 Windows Server 2016 Standard
3 回答
波斯汪
TA贡献1811条经验 获得超4个赞
根据这个答案,你睡的时间越长,遇到问题的可能性就越大,尽管 80 分钟看起来确实有那么长。
如果这确实导致了您的问题,也许您应该考虑将睡眠时间分成几个部分(例如 1 分钟)作为解决方法:
def test(minutes):
import time
for k in range(minutes):
time.sleep(60)
return True
Cats萌萌
TA贡献1805条经验 获得超9个赞
尝试这些事情,
在您的 PHP 脚本中,添加“timeout 100m”,这可能会增加 python 脚本执行超时
$output = shell_exec("timeout 100m python3 longrun.py");
echo $output;
在您的服务器配置文件(对于Ubuntu中的Apache2,它是“/etc/apache2/apache.conf”)将超时更改为6000,默认值为300。6000意味着6000秒,等于100分钟
- 3 回答
- 0 关注
- 331 浏览
添加回答
举报
0/150
提交
取消