PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Impostazione corretta del pool di connessioni al database database.yml per le applicazioni Rails a thread singolo

Abbastanza tardi per la festa qui, ma ho esaurito le connessioni al database oggi in produzione.

Come molte persone, utilizzo Sidekiq per eseguire lavori asincroni come l'invio di e-mail, ad esempio. È importante notare che Sidekiq viene eseguito come processo multithread.

Quindi, non solo ho un'applicazione Rails a thread singolo, quindi questa risposta non si applica direttamente alla domanda posta, ma ho pensato che valesse la pena dire qualcosa qui perché penso che le app Rails multithread siano relativamente normali al giorno d'oggi.

Ciò significa che è necessario regolare le dimensioni del pool in modo tale da creare connessioni sufficienti per gestire tutti i lavori che possono essere accodati e richiedere più di 5 secondi (il periodo di timeout predefinito per attendere una connessione al database prima di generare un errore).