【发布时间】:2014-03-28 10:58:18
【问题描述】:
我是一名 DBA,我偶然发现了这种情况:开发人员运行 irb 会话(来自 Ruby on Rails 应用程序)。此 irb 保持数据库连接打开。有时——他们忘记了它,它继续“运行”——什么都不做,但仍然使用一个数据库连接。
我想在他们的 irb 配置中添加某种“空闲超时”。是否可以?怎么做?
【问题讨论】:
-
在一段时间后终止进程可能会更好,因为我认为 irb 没有自毁选项。或者可能在每天凌晨 2 点终止进程或其他什么?
-
凌晨 2 点是个非常糟糕的主意,因为我们至少有 4 个不同时区的工人 :) 所有人都在同一台机器上工作 :)
-
嗯,是的,那是行不通的:)
-
您想在客户端上强制执行此操作,并且即使他们没有连接到数据库,也让他们的 irb 会话超时?超时空闲数据库连接可能不是更好吗?如果是 Postgres,显然有像 PGBouncer 这样的东西代理连接并管理空闲连接,您可以让开发人员在开发环境中配置他们的连接设置以通过这样的代理/连接管理器。
-
我知道 pgbouncer,问题是我喜欢来自应用程序的空闲数据库连接——我只是不喜欢开发人员提供的它们。即使他们由于运行迁移而使用应用凭据。