2011-06-16 28 views
1

我正在運行一個web2py服務器,它處理一些請求,可能需要幾秒鐘到幾分鐘的總完成時間。一旦與服務器建立了連接,並且它正在處理大約需要2-3分鐘的請求,則到服務器的新連接必須等待,直到前一個請求完成。Web2py服務器問題

我不知道我們是否可以在web2py中調整一些參數。我們有什麼辦法解決這個問題。

回答

2

當忙於連接時,web2py不會鎖定服務器,但會故意鎖定用戶會話。這意味着其他用戶可以連接,但不是啓動原始請求的用戶。在所述耗時阿克頓你可以這樣做:

session._unlock(響應)

而這個問題(如果診斷是正確的)會自行消失。

無論如何,請求花費這麼長時間不是一個好主意。網絡服務器可能會毀掉您的流程,並且不利於可用性。您應該有一個數據庫表,您可以在這些任務中對這些任務進行排隊,並在後臺進程中處理它們(在手冊中進行說明),而不是使用ajax或html5 websockets(web2y/gluon/contrib/comet_messaging.py)來檢查長時間運行任務的進度。

請把它放在web2py郵件列表中,我們將幫助您提供更具體的示例。

+0

感謝您的快速響應。 session._unlock(響應)很好地工作 我試圖找出文件comet_messaging.py但不能。如果你能幫我找到這個文件並進一步使用它。 – 2011-06-17 00:17:50

+0

有沒有辦法做到這一點,而不使用HTML5? – w2lame 2011-06-17 00:24:35

+0

請注意,您也可以調用'session.forget(response)',它將解鎖會話文件並關閉會話文件(並確保會話未寫入會話文件)。 – Anthony 2011-06-17 03:43:56