2011-06-19 58 views
5

我有一個請求需要大約1.5分鐘才能完成,但是當請求完成時,它將阻止服務器的所有其他請求。我用mod_php使用Apache。解決這個問題的最好方法是什麼?謝謝!長請求阻止Apache和PHP中的其他請求

+0

對於單個請求,1.5分鐘確實很長時間。 – hakre

回答

13

[mod_telepathy]

你使用會話?如果是這樣 - 雖然你沒有用長腳本關閉會話,但其他人會等待它。

如果你不需要會話那裏所有的時間 - 你可以用session_write_close()

[/ mod_telepathy]

+0

而「其他人」則表示「來自同一客戶的其他人」。 :) – netcoder

+0

@netcoder:顯然 - 是的;-) – zerkms

+0

@zerkms,我在C#中有同樣的問題,你能幫我嗎?! –

1

基於文件的會話將導致阻塞關閉。如果你使用數據庫或memcache/redis,你可以防止這種阻塞。

+0

這顯然是錯誤的。無論您定義了哪個文件處理程序,會話都會被阻止,直到它們被序列化並關閉。 – SimonSimCity