【发布时间】:2012-12-14 00:38:50
【问题描述】:
我正在使用 Sequel 从 Rack webapp 与 MySQL 数据库通信。有时,应用程序空闲的时间足够长,以至于它超过了服务器上的wait_timeout(我们已将其保留为默认的 8 小时)。异常表明我们可以启用autoReconnect,但显然那是not encouraged。无论如何,在那种情况下,我仍然会遇到异常,并且必须重试操作。
如果autoReconnect 是一个不好的模式,我应该使用什么模式?我想做的是
DB["myDB"].pool.hold do | conn |
... do stuff
end
但如果连接过时,当然会抛出。我可以将整个事情包装成一个开始救援,然后再试一次,但如果我有一个大池,我最终可能会重试 10 或 20 次,然后才能找到一个有效的。
【问题讨论】: