亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 PHP 中使用 shell_exec 長時間運行的 Python 腳本沒有返回結果

在 PHP 中使用 shell_exec 長時間運行的 Python 腳本沒有返回結果

PHP
守著一只汪 2023-07-08 15:38:39
我使用 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


查看完整回答
反對 回復 2023-07-08
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

嘗試這些事情,

  1. 在您的 PHP 腳本中,添加“timeout 100m”,這可能會增加 python 腳本執行超時

$output = shell_exec("timeout 100m python3 longrun.py"); echo $output;

http://img1.sycdn.imooc.com//64a912e00001dafb05200194.jpg

  1. 在您的服務器配置文件(對于Ubuntu中的Apache2,它是“/etc/apache2/apache.conf”)將超時更改為6000,默認值為300。6000意味著6000秒,等于100分鐘

http://img1.sycdn.imooc.com//64a912ec0001673e06460429.jpg



查看完整回答
反對 回復 2023-07-08
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

檢查 php.ini 中的 max_input_time



查看完整回答
反對 回復 2023-07-08
  • 3 回答
  • 0 關注
  • 441 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號