我使用 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 關注
- 441 瀏覽
添加回答
舉報
0/150
提交
取消