我正在使用rails 3.2 + unicorn + postgres DB,我有一个问题 - 独角兽如何处理数据库连接?
我的理解:
- 独角兽主进程分叉X子进程.
- 每个子进程设置DB连接 - 在before_fork中关闭,在after_fork中建立连接.
- 我们使用每个进程的连接(如果我们使用rails DB连接池,我们创建Y(来自database.yml)每个进程的数据库连接) - 即如果进程正在工作(它始终有效,直到我们不杀死它)我们保持连接打开并且每个Web请求使用相同的连接(在after_fork中打开).
- 打开的连接将在postgres(或任何其他数据库)中显示为空闲或活动.
这是正确的还是我错过了什么?