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

Réglage correct du pool de connexion à la base de données database.yml pour les applications Rails à thread unique

Assez tard pour la fête ici, mais j'ai manqué de connexions à la base de données aujourd'hui en production.

Comme beaucoup de monde, j'utilise Sidekiq pour effectuer des tâches asynchrones comme l'envoi d'emails par exemple. Il est important de noter que Sidekiq fonctionne comme un processus multithread.

Donc, je ne juste avoir une application Rails à un seul thread, donc cette réponse ne s'applique pas directement à la question posée mais j'ai pensé qu'il valait la peine de dire quelque chose ici car je pense que les applications Rails multithreads sont relativement normales de nos jours.

Cela signifie que vous devez ajuster la taille de votre pool de manière à créer suffisamment de connexions pour gérer tous les travaux pouvant être mis en file d'attente et prendre plus de 5 secondes (le délai d'attente par défaut pour attendre une connexion à la base de données avant de générer une erreur).