2013-03-27 9 views
6

Ich benutze Schienen 3.2 + Unicorn + Postgres DB und ich habe eine Frage - wie behandelt Einhorn DB-Verbindungen?Unicorn nicht schließen DB-Verbindungen

Wie verstehe ich:

  1. Einhorn-Master-Prozess Gabeln X Kindprozess.
  2. jedes Kind Prozess Setup DB-Verbindung schließen in before_fork, stellen Sie eine Verbindung in after_fork.
  3. verwenden wir Verbindung pro Prozess (wenn wir Schienen DB Verbindungspooling verwenden, erstellen wir Y (aus Datenbank.yml) DB-Verbindungen pro Prozess) - dh Wenn Prozess funktioniert (es funktioniert immer, bis wir es nicht töten) halten wir Verbindung geöffnet und jede Webanfrage verwendet dieselbe Verbindung (die in after_fork geöffnet wurde).
  4. geöffnete Verbindungen werden in Postgres (oder einem anderen DB) als inaktiv oder aktiv angezeigt.

Ist es richtig oder habe ich etwas verpasst?

Antwort

8

Ja, Sie haben Recht. Wenn Sie "workers_processes 5" in "unicorn.conf" und "pool: 4" in "database.yml" festlegen, werden 20 Verbindungen zur Datenbank erstellt.

3

Ich schrieb an Eric Wong, er ist der Gründer des Einhorns, er bestätigte, dass es korrekt ist.

Verwandte Themen