簡體   English   中英

如何在php中保持持久的http連接?

[英]How to maintain a persistent http connection in php?

我有一個小的網絡界面,該界面將文件上傳到服務器上,然后將該文件轉儲到oracle db中。 但是其中有大約700萬條記錄,並且Web服務器在讀取和轉儲該文件時會超時。 有人可以告訴我如何保持該會話的活動狀態,以便在db中上傳,讀取和轉儲數據時不會超時嗎?

伙計們,我說的是用戶上載文件並將其轉儲到db中所需的時間。...現在有700萬條記錄是巨大的,Web服務器肯定會超時....如果是oracle超時也是如此,那該怎么辦.....我知道它令人困惑,但是我不想讓用戶知道他的文件沒有轉儲到db ...在這種情況下,異步機制不是一種選擇。 。我目前正在使用apache

到目前為止,這是一個簡單的腳本,很少有html對象和php。 我必須在php中實現它==)

期待您的寶貴回應。 謝謝

要保持腳本運行,請將此代碼放在php文件的開頭。 我認為這僅在您直接調用文件時有效。 我的意思是,如果包含php文件,我認為不會起作用。

set_time_limit(0);
header('Connection: close');
ignore_user_abort();

從這里: http : //php.oregonstate.edu/manual/en/features.connection-handling.php

希望這會有所幫助,Ismael。

沒有“持久的http連接”之類的東西

我該如何保持該會話的生命

HTTP是無狀態的,因此會話管理不是由協議實現的-也與您描述的問題無關。

和Web服務器超時

也許如果您告訴我們它是什么Web服務器,那么我們也許能夠提出操縱超時的方法。

此外,您沒有說為什么會認為它是超時問題,而不是其他原因(例如文件大小限制)出了錯,並且您沒有區分上傳和后續數據加載(腳本失敗的原因)。

....但是解決問題的正確方法是在文件上傳后啟動單獨的獨立過程來執行數據加載。 有一個谷歌的“長期運行的PHP進程setsid”

暫無
暫無

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

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