У меня проблемы с моим сервером. Это сервер CentOS RedHat Linux, на котором работает «Dashing» панель управления на основе Ruby/Sinatra.
Я пытаюсь закрыть активные соединения, как определено в моей базе данных MySQL "SHOW PROCESSLIST;"
Пример файла .rb
require 'mysql2'
SCHEDULER.every '10s'do
db = Mysql.new('host_name', 'database_name', 'password', 'table')
mysql1 = "SELECT `VAR` from `TABLE` ORDER BY `VAR` DESC LIMIT 1"
result1 = db.query(mysql1)
result1.each do |row|
strrow1 = row[0]
$num1 = strrow1.to_i
end
...
db.close
LINK[0] = { label: 'LABEL', value: $num1}
...
send_event('LABEL FOR HTML', { items: LINK.values })
end
Однако после нескольких щелчков назад и вперед становится ясно, что база данных не разрывает соединения, а вместо этого сохраняет их. Это приводит к замедлению работы браузера до такой степени, что загрузка страницы становится невозможной, а вывод журнала выглядит следующим образом:
"max_user_connections" reached
Кто-нибудь может придумать, как это исправить?
db.close
не в конце файла, но я с радостью предоставлю больше кода из файла. - person Raisus   schedule 18.09.2014