簡體   English   中英

按計划任務運行的PHP腳本掛起-幫助!

[英]Php script running as scheduled task hangs - help!

我建立了一個從命令行運行的php腳本。 它打開一個與pop3電子郵件帳戶的連接,然后下載所有電子郵件並將其寫入數據庫,並在下載后將其刪除。 我有一個bat文件從命令行調用此腳本。 反過來,我創建了一個計划任務,該任務每5分鍾調用一次bat文件。 事實是,我將超時設置為零,原因是有時可能會有帶有大附件的電子郵件,而腳本實際上是下載附件並將其存儲為脫機原始文件,因此沒有超時,因此腳本不會死在下載過程中。

我發現該程序有時會掛起,這有點煩人-它總是掛起是一點,即在協商連接並連接到郵件服務器時。 而且由於超時設置為零,因此似乎停留在泰銖位置。 因此,該任務無法正常運行,因此無法運行。

我希望程序在下載電子郵件時不應該超時-但是,在協商連接或嘗試連接到郵件服務器時,應該僅在該時間點本身而不是在程序執行的其余部分超時。

我該怎么做呢 :(

如果直接使用套接字,則可以使用socket_set_timeout()設置超時值。 您可以查看另一個問題以獲取詳細信息。 如果您使用的是庫,則應檢查其文檔。 但我寧願檢查是否真的是超時問題。 將php錯誤記錄到文件中 ,您可以瀏覽所有錯誤。 max_execution_time設置為某個可接受的值(例如10分鍾),並在再次掛起時檢查日志(如果它始終與失敗所在的行相同)。

我最近為正在尋找答案的人遇到了這個問題。 我有任務計划程序直接調用.php文件。 它會掛起並且永遠不會返回任何東西。

我發現運行firefox.exe並將URL作為參數發送是通過任務管理器運行.php文件的正確方法。

firefox.exe“ http://host/dir/file.php”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM