Mysql
 sql >> Base de données >  >> RDS >> Mysql

ActiveRecord::ConnectionTimeoutError :impossible d'obtenir une connexion à la base de données dans les 5 000 secondes (attente de 5 000 secondes)

J'ai eu les mêmes problèmes qui ont été causés par trop de connexions ouvertes à la base de données. Cela peut se produire lorsque vous avez des requêtes de base de données en dehors d'un contrôleur (dans un modèle, un mailer, un générateur de pdf, ...).

Je pourrais résoudre ce problème en enveloppant ces requêtes dans ce bloc qui ferme automatiquement la connexion.

ActiveRecord::Base.connection_pool.with_connection do
  # your code
end

Étant donné que Puma fonctionne en multithread, la taille du pool (comme l'a mentionné eabraham) peut également être une limitation. Essayez de l'augmenter (un peu)...

J'espère que cela vous aidera !