I'm using the official python MySQL connector and I want to use its connection pool to manage the connections. The question is, if I get a connection from the pool, an uncaught exception is thrown before the connection is returned to the pool or I just forget to close it, will the pool close the connection automatically? If not, how can I make sure that the connection can be returned to the pool under any circumstances?
For example:
import mysql.connector as mysql
pool = mysql.pooling.MySQLConnectionPool(pool_name = "name", pool_size = 3, pool_reset_session = True, **dbConfig)
for i in range(3):
cnx = pool.get_connection()
#if I forget to call cnx.close(), the pool will be exhausted
# now the pool is exhausted
cnx = pool.get_connection() #PoolError is raised