2016-04-19 117 views
0

背景: 我是Ruby on Rails新手,我創建了一個應用程序,它從mysql數據庫中讀取數據,並使用dashing顯示患者信息。Dashing:連接不關閉

問題: 每當我刷新儀表板頁面超過4次,我得到一個ActiveRecord :: ConnectionTimeoutError。我堅信連接不會關閉,如here。我試圖實施一些成功的解決方案。

問題/要求:你能向我解釋爲了消除這個錯誤需要做些什麼?

謝謝大家幫忙

編輯

Redis-cli monitor output after two refreshes

EDIT2

寶石列表:

  • 寶石 '設計'
  • 寶石 '軌道', '4.2.5'
  • 寶石 'mysql2', '> = 0.3.13', '< 0.5'
  • 寶石 'SASS護欄',' 〜> 5.0'
  • 寶石 'uglifier', '> = 1.3.0'
  • 寶石 '咖啡軌道', '〜> 4.1.0'
  • 寶石 '咖啡腳本源',「1.8 0.0'
  • 寶石 'jQuery的軌道'
  • 寶石 'turbolinks'
  • 寶石 '在jbuilder', '〜> 2.0'
  • 寶石 'SDOC', '〜> 0.4.0',基團::DOC
  • 寶石 '橫飛-導軌'
  • 寶石 '彪馬'
  • 寶石 '引入nokogiri'
  • 寶石 'ヶ輛'
  • 寶石 'pickadate護欄'
  • 寶石 'JSON'

Full error

回答

0

你說你正在使用MySQL,但是你鏈接的帖子是指Redis。您沒有真正提供足夠的信息來解決問題,並且您提供的信息是相互矛盾的。你啓動應用程序之前

show processlist; 

運行一次:也就是說,你可以通過連接你的MySQL服務器,並運行命令給自己在你的信仰更有信心。加載您的頁面,並在每次刷新頁面時再次運行它。如果您未關閉連接,則每次都會看到新的連接。

現在,我覺得這個解釋有點不太可能。在我看來,你做更昂貴的事情並使數據庫過載的可能性更大。爲此,您需要深入瞭解您正在運行的查詢,並瞭解如何進行優化。

+0

我使用MySQL來存儲數據,但是我仍然需要Redis來運行。當我嘗試你所說的在Redis中沒有在mysql中添加新連接時,我每次刷新頁面時都會獲得新訂閱(http://imgur.com/jy3oRXY)。 –

+0

ActiveRecord :: ConnectionTimeoutError意味着您的MySQL連接超時,而不是Redis。 (假設您使用的是Mysql2 gem,而不是某些Redis適配器,您應該列出您正在使用的寶石以及可能的數據庫配置。) –

+0

已更新的說明。我的數據庫配置是默認的。 –