2013-03-27 10 views
6

Sto usando rails 3.2 + unicorn + postgres DB e ho una domanda - come fa unicorn gestire le connessioni DB?Unicorno non chiude connessioni DB

Come ho capito:

  1. unicorno processo figlio processo maestro forche X.
  2. ogni processo figlio imposta connessione DB - chiudi in before_fork, stabilisce la connessione in after_fork.
  3. usiamo la connessione per processo (se usiamo il pool di connessioni DB delle rotaie, creiamo Y (da database.yml) connessioni DB per processo) - cioè Se il processo funziona (Funziona sempre fino a quando non lo uccidiamo) manteniamo la connessione aperto e ogni richiesta web usa la stessa connessione (che è stata aperta in after_fork).
  4. connessioni aperte verranno mostrate in postgres (o qualsiasi altro DB) come inattivo o attivo.

È corretto o mi sono perso qualcosa?

risposta

8

Sì, hai ragione. Se si imposta "worker_processes 5" in unicorn.conf e "pool: 4" in database.yml, verranno create d 20 connessioni al database.

3

ho scritto a Eric Wong è il fondatore della gemma di unicorno, ha confermato che è corretto.

Problemi correlati