<p>链接<a href="http://www.gelens.org/2009/09/13/twisted-connectionpool-revisited/" rel="nofollow">http://www.gelens.org/2009/09/13/twisted-connectionpool-revisited/</a>不再工作,甚至Web存档版本也不起作用。以下是Twistar 1.3的一段摘录,其中提到了相同的解决方案:</p>
<p><a href="https://pypi.python.org/pypi/twistar" rel="nofollow">https://pypi.python.org/pypi/twistar</a></p>
<pre><code>class ReconnectingMySQLConnectionPool(adbapi.ConnectionPool):
"""
This connection pool will reconnect if the server goes away. This idea was taken from:
http://www.gelens.org/2009/09/13/twisted-connectionpool-revisited/
"""
def _runInteraction(self, interaction, *args, **kw):
try:
return adbapi.ConnectionPool._runInteraction(self, interaction, *args, **kw)
except MySQLdb.OperationalError, e:
if e[0] not in (2006, 2013):
raise
log.err("Lost connection to MySQL, retrying operation. If no errors follow, retry was successful.")
conn = self.connections.get(self.threadID())
self.disconnect(conn)
return adbapi.ConnectionPool._runInteraction(self, interaction, *args, **kw)
</code></pre>