Quiero hacer una interfaz de programación de aplicaciones de base de datos escrito en Python y el uso de SQLAlchemy (o cualquier otro tipo de conectores de base de datos si se le dice que el uso de SQLAlchemy para este tipo de tarea no es la buena manera de ir) . La configuración es un servidor MySQL que se ejecuta en Linux o BSD y un software de Python que se ejecuta en una máquina Linux o BSD (ya sea extranjera o local).uso multi-hilo de SQLAlchemy
Básicamente lo que quiero hacer es generar un nuevo hilo para cada conexión y el protocolo sería personalizado y bastante simple, aunque para cada solicitud me gustaría abrir una nueva transacción (o sesión como he leído) y luego Necesito comprometer la sesión. El problema que estoy enfrentando ahora es que hay una gran probabilidad de que ocurran otras sesiones al mismo tiempo desde otra conexión.
Mi pregunta aquí es ¿qué debo hacer para manejar esta situación?
- ¿Debo usar un candado para que solo una sesión se pueda ejecutar al mismo tiempo?
- ¿Las sesiones son realmente seguras para hilos y me equivoco al pensar que no?
- ¿Hay una mejor manera de manejar esta situación?
- ¿Está enloqueciendo el camino para no ir?
No es 'session.remove()'? –
@AllanRuin: si por 'sesión' te refieres' some_session' del ejemplo provisto, no. Un objeto 'session' no tiene método' remove'. En este caso, 'Session' es un objeto' scoped_session'. Su método 'remove' identifica la' sesión' actual y llama a su método 'close' antes de descartarlo. Explicado [en los documentos] (http://docs.sqlalchemy.org/en/latest/orm/contextual.html?highlight = scoped # sqlalchemy.orm.scoping.scoped_session.remove). – bfin
enlace actualizado a los documentos: http://docs.sqlalchemy.org/en/latest/orm/contextual.html – Mahdi