簡體   English   中英

瀏覽器運行一段時間后,PHP腳本停止運行

[英]PHP script stops running after some time run by browser

我制作了一個PHP腳本,可能需要大約3個小時才能完成。 我從瀏覽器運行它,大約45分鍾后它停止做任何事情。 我知道這一點,因為它輪詢某些網址,然后將一些數據保存到數據庫。 所以它基本上停止將任何數據放到數據庫中,這導致我得出它已經停止的結論。 它仍然在瀏覽器中顯示它會加載頁面,但它無休止。

沒有任何錯誤,所以它可能是某種超時......但它發生的地方是神秘的,或者我怎么能防止它發生。 在我的情況下,我無法使用CLI,我必須使用瀏覽器客戶端來啟動腳本。

我試過放

set_time_limit(0);  

但它沒有明顯的效果。 什么可能導致超時和修復的建議?

嘗試這個:

set_time_limit(0); 
ignore_user_abort(true);
ini_set('max_execution_time', 0);

大多數webhost會終止運行一段時間的進程。 這是針對無限循環的故障保護。

向您的主人詢問此問題,看看是否有任何方法可以禁用此特定腳本。 在某些情況下,殺手不適用於Cron任務或SSH運行的進程。 但是,這因主機而異。

可能是超時的瀏覽器,不確定瀏覽器是否這樣做,但是我也從來沒有一個頁面需要這么多時間。

建議:我假設你正在運行一個循環。 加載一個頁面,然后在對另一個頁面的ajax調用中運行循環的每次迭代,而不是觸發下一個迭代直到前一個迭代返回。

PHP中有一個設置可以在一段時間后終止進程。 這對於共享服務器尤其重要(您不希望一個進程使整個服務器運行速度變慢)。

您需要詢問您的主機是否可以修改php.ini(通過.htaccess)。 特別是max_execution_time設置。

如果您正在使用會話,那么您需要查看'session.cookie_lifetime'而不是set_time_limit。 如果您使用的是數組,則數組大小也可能會填滿。

如果沒有關於腳本如何處理任務的更多信息,則很難識別。

暫無
暫無

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

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