【问题标题】:Do threads in rails automatically open database connections?rails 中的线程会自动打开数据库连接吗?
【发布时间】:2015-04-14 20:37:40
【问题描述】:

我在 Heroku 上运行了一个使用线程的 rails 应用程序,它偶尔会遇到数据库连接错误。这仅仅是因为我在线程中访问数据库还是每个线程都会自动打开数据库连接?我想了解更多关于 Rails 中的线程的信息,感谢您提供任何资源。

【问题讨论】:

  • 究竟是什么错误?

标签: ruby-on-rails ruby postgresql ruby-on-rails-4 heroku


【解决方案1】:

这个问题在很大程度上取决于您运行的实例数量、接收的请求数量,更重要的是您的数据库。数据库可以并且将有最大数量的并发连接。您可以阅读有关 Heroku/并发连接 here in the Heroku official documentary 的更多信息,它可能比我在一条评论中告诉您的信息更丰富。

话虽如此,您的问题有点含糊,很难弄清楚发生了什么。你能告诉我们更多关于你得到什么错误(比如具体错误),也许还有一个小的回溯吗?您是在相同页面还是在不同页面上收到这些错误?您会说您的网站流量特别高吗?

【讨论】:

  • 我实际上是在尝试处理我解决过的一个较旧的问题,但我不再有确切的踪迹,但我相信这是具体错误:致命:角色连接过多“ [角色名称]”我在一定程度上理解,但我想知道这个数据库连接是因为线程自动打开连接还是仅当它们尝试访问数据库时。就像我在线程中没有发出数据库请求一样,它是否还在打开连接?
  • @spitfire109 不,如果请求中没有任何内容实际上需要数据库中的数据,它就不会生成。
  • @JoshEmory 这仍然适用于 Rails 5 吗? (如果不需要数据库数据,则不从数据库池中检查新连接)
  • @OscarMederos 我相信这仍然适用于 Rails 5,是的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-28
相关资源
最近更新 更多