我有一个rails应用程序,我不经常提供XML。 这是用mongrel和mysql运行的。 我发现,如果我不运动应用程序超过几个小时,它就会死机并开始抛出Errno :: EPIPE错误。似乎mysql连接因不活动或类似的事情而超时。
可以使用'mongrel_rails restart -P /path/to/the/mongrel.pid'重新启动...但这不是真正的解决方案。 我的合作者希望应用程序在他工作的时候就在那里(我很可能不在身边)。
我的问题是:
答案 0 :(得分:1)
这是一个解决方案:
https://boxpanel.blueboxgrp.com/public/the_vault/index.php/Mongrel_/_MySQL_Timeout
上述解决方案的超时对我来说似乎有点高。由于连接可以使用的内存量,您不希望数据库超时太低。如果连接是孤立的,您希望它能够合理地超时(比如一周内没有。)
答案 1 :(得分:0)
在其他地方,我也有以下建议:
尝试设置 config.active_record.verification_timeout 低于任何值 你的mysql连接超时设置是。
有一个宝石可以解决这个问题: mysql_retry_lost_connection
http://rubyforge.org/projects/zventstools/
"Reconnect to the MySQL server when you hit a lost connection error".