Soy nuevo en SQLAlchemy, pero estoy tratando de usarlo para crear y completar una base de datos para un proyecto personal. Establecí pool_timeout
en 43200 (doce horas), pero sigo recibiendo tiempos de espera del socket.Evitar los tiempos de espera del socket en SQLAlchemy
engine = sqlalchemy.create_engine(
'postgresql+pg8000://gdwatson:[email protected]/dbname',
pool_timeout=43200)
db.tables.meta.drop_all(bind=engine)
db.tables.meta.create_all(bind=engine)
conn = engine.connect()
dataset = build_dataset()
conn.execute(db.tables.mytable.insert(),
dataset)
conn.close()
termino conseguir socket.timeout: timed out
después de una buena cantidad de tiempo de procesamiento, pero probablemente menos de una hora y ciertamente menores de dos años. En realidad, se trata de tres niveles de profundidad: mientras se manejaba la excepción de tiempo de espera, se producía otra, y luego, al manejarla, se producía otra. (Tal vez esta es la reintentación de la biblioteca?) La excepción se produce en conn.execute
, y no sé cómo evitarlo.
Una búsqueda no ha encontrado nada informativo. Estoy usando Python 3.1 y SQLAlchemy 0.6.1, por lo que vale.
Terminé cortando el conjunto de datos en trozos de 1000 entradas e insertándolo un trozo a la vez. Eso funcionó alrededor del problema, incluso si es un poco más feo. –