2016-04-19 4 views
0

Фон: Я новичок в ruby ​​on rails, и я создал приложение, которое считывает данные из базы данных mysql и отображает информацию о пациенте с помощью лихих.Dashing: соединения не закрываются

Проблема: Всякий раз, когда я обновить панель страницы более чем в 4 раза я получаю ActiveRecord :: ConnectionTimeoutError. Я твердо верю, что соединения не закрываются, как указано here. Я попытался реализовать решения, даваемые с небольшим успехом.

Вопрос/запрос: Не могли бы вы объяснить мне, что нужно сделать, чтобы удалить эту ошибку?

Спасибо за помощь

EDIT

Redis-cli monitor output after two refreshes

EDIT2

Gem список:

  • камень 'разработать'
  • Gem 'рельсы', '4.2.5'
  • Gem 'mysql2', '> = 0.3.13', '< 0,5'
  • Gem 'SASS рельсы', ' ~> 5,0'
  • камень 'uglifier', '> = 1.3.0'
  • Gem 'кофе рельсы', '~> 4.1.0'
  • камень 'кофе-скрипт-источник', «1.8 .0 '
  • gem' jquery-rails '
  • gem' turbolinks '
  • камень 'JBuilder', '~> 2,0'
  • камень 'ЗПС', '~> 0.4.0', группа:: док
  • камень 'лихие рельсах'
  • камень 'пума'
  • камень 'nokogiri'
  • камень '' htmlentities
  • Gem 'pickadate рельсах'
  • камень 'JSON'

Full error

ответ

0

Вы говорите, что используете MySQL, но ссылка, на которую вы ссылаетесь, относится к Redis. Вы не предоставили достаточно информации для решения проблемы, и предоставленная вами информация противоречива. Тем не менее, вы можете дать себе больше уверенности в вашей вере путем подключения к серверу MySQL и выполнив команду:

show processlist; 

один раз запустить его, прежде чем запустить приложение. Загрузите свою страницу и запустите ее каждый раз при обновлении страницы. Если вы не закрываете соединения, вы увидите новое соединение каждый раз.

Теперь я нахожу это объяснение маловероятным. Мне кажется более вероятным, что вы делаете что-то дорогое и перегружаете базу данных. Для этого вам нужно будет вникнуть в какие запросы, которые вы используете, и выяснить, как оптимизировать.

+0

Я использую MySQL для хранения данных, однако мне все еще нужно, чтобы Redis работал лихо. Когда я попробовал то, что вы сказали, новые соединения не были добавлены в mysql в Redis, однако я получаю новую подписку каждый раз, когда обновляю страницу (http://imgur.com/jy3oRXY). –

+0

ActiveRecord :: ConnectionTimeoutError подразумевает, что ваше соединение с MySQL устарело, а не Redis. (Предположим, что вы используете драгоценный камень Mysql2, а не какой-либо адаптер Redis. Вы должны указать используемые камни и, возможно, вашу конфигурацию базы данных.) –

+0

Обновлено описание. Настройки моей базы данных по умолчанию. –

Смежные вопросы