【问题标题】:Cancel Rails DB connection取消 Rails 数据库连接
【发布时间】:2013-06-13 16:20:19
【问题描述】:

我正在编写一个将服务器端事件与 ActionController::Live 一起使用的应用程序。它正在使用 puma 应用服务器。当用户连接等待来自 Redis 的消息时,Messages 控制器中的方法保持活动状态。

问题是我不想通过这种方法连接到 Postgres。在我在六个选项卡中打开应用程序后,它有超过五个由config/database.yml 文件中的池大小定义的连接,应用程序崩溃。

是否有办法告诉我的应用何时调用该方法,因为其中没有 ActiveRecord 查询调用,所以它不需要连接到数据库?

【问题讨论】:

  • 我是否应该将它放在控制器操作的顶部,因为它不起作用。
  • 您能否发布一个 Rails 应用程序作为示例,以重现此应用程序崩溃问题?
  • 您需要将数据库连接数增加到等于 Puma 线程数。否则你会过早地用完连接,就像你看到的那样。
  • 是的,但我真正想要的是一种在创建 puma 线程时不会创建新数据库连接的方式,因为它不是必需的。

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


【解决方案1】:

一种可能的方法是使用中间件。设置自己的中间件的一个很好的资源是http://railscasts.com/episodes/151-rack-middleware?view=asciicast

但是,我不认为您遇到的问题是因为与 Postgres 的连接过多。这只是一种预感,但我认为您的问题可能出在其他地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    相关资源
    最近更新 更多