2010-12-20 50 views
0

我有一個支持MySQL的Rails 3應用程序。我目前有數據庫讀取擴展問題,我正在獨立解決它們。同時,由於某些數據庫查詢需要花費很多分鐘才能運行,因此Passenger會產生多個Rack進程(達到指定限制),但所有進程都等待/掛起等待數據庫。Nginx + Passenger + Rails 3 Rack processes hang

在某個時候,nginx拒絕接受更多的連接。

有沒有一種方法可以告訴Passenger超時它的Rails委託調用並釋放資源,以便它可以偵聽傳入的請求?

謝謝。

回答

0

如果您在處理請求中的查詢需要很多分鐘,那麼您做錯了。

請求應儘可能快。幾分鐘是不可接受的。考慮將長時間運行的查詢卸載到Delayed :: Job,以便它們可以在後臺運行而不是阻止其他請求。

此外,我不知道您正在運行什麼查詢,但如果它需要很多分鐘您可能需要考慮分析它們。

+0

謝謝。我們有一個基於異步事件總線的系統來處理大多數請求。我們確實有一些SQL報告由於表的龐大(數百萬條記錄)而放緩。我正在努力將這些報告脫機。感謝您對Delayed :: Job的建議。 – 2010-12-22 04:41:48

相關問題