我使用 shell_exec 從命令行運行 Python 腳本,為了測試,Python 腳本只是等待一段時間然后返回 True:def test(minutes):
import time
time.sleep(minutes*60)
return True據(jù)我測試,如果時間段是 30 分鐘或 60 分鐘,結(jié)果會成功返回給 PHP,但是如果我將其設(shè)置為 80 分鐘,PHP 不會收到任何結(jié)果,甚至不會收到錯誤消息。php.ini 中的 max_execution_time 是 30000 秒,足夠長了。環(huán)境:帶有 IIS 的 Windows Server 2016 Standard
3 回答

波斯汪
TA貢獻(xiàn)1811條經(jīng)驗 獲得超4個贊
根據(jù)這個答案,你睡的時間越長,遇到問題的可能性就越大,盡管 80 分鐘看起來確實有那么長。
如果這確實導(dǎo)致了您的問題,也許您應(yīng)該考慮將睡眠時間分成幾個部分(例如 1 分鐘)作為解決方法:
def test(minutes):
import time
for k in range(minutes):
time.sleep(60)
return True

Cats萌萌
TA貢獻(xiàn)1805條經(jīng)驗 獲得超9個贊
嘗試這些事情,
在您的 PHP 腳本中,添加“timeout 100m”,這可能會增加 python 腳本執(zhí)行超時
$output = shell_exec("timeout 100m python3 longrun.py");
echo $output;
在您的服務(wù)器配置文件(對于Ubuntu中的Apache2,它是“/etc/apache2/apache.conf”)將超時更改為6000,默認(rèn)值為300。6000意味著6000秒,等于100分鐘
- 3 回答
- 0 關(guān)注
- 439 瀏覽
添加回答
舉報
0/150
提交
取消