我在使用Passenger的生产中使用Rails。该应用程序能够并行处理多个请求
在迁移帮助程序代码中,我建立与旧数据库的连接,以将数据复制到新数据库。
通过呼叫建立连接
ActiveRecord::Base.establish_connection
,它是仅影响当前请求还是会产生一些副作用?
获取数据后,我恢复了与Rails环境的连接。
(我的猜测是乘客产生了多个过程,因此这应该不是问题)
答案 0 :(得分:0)
在普通的pasenger部署中,这根本不是问题。它确实只会产生多个进程。他们不共享任何州,所以不会有任何副作用。
如果您在多线程设置中使用乘客企业,这可能会引起一些担忧。但据我所知,establish_connection负责从连接池中获取新连接并将其保存到此Class的Thread.current哈希中。因此,也应该没有副作用,例如为其他请求全局切换连接。