I have a system composed by client where runs sqlalchemy and a remote server where runs MySQL server database. With sqlalchemy I use to setup session:
# db_host is the ip address of remote server db_url = 'mysql+mysqldb://db_user:db_pswd@db_host/db_name' db_engine = create_engine(db_url) db_session_factory = sessionmaker(bind=db_engine) db_session = scoped_session(db_session_factory) and later, whenever I have data to dump I do something like: # dumping phase db_session.add(data) db_session.commit() I would need to handle, from the client side, an unexpected disconnection of the server from the network (e.g. it switches off, the internet goes down or merely I unplug the ethernet cable...). I would like to get an exception or something to handle this during the dumping phase, for instance setting a connection timeout on client side. In case of exception I could dump the data on a local database for instance. If server goes down during dumping phase, it will wait about 15 minutes and then sqlalchemy raises an exception like: sqlalchemy.exc.OperationalError: (OperationalError) (2013, 'Lost connection to MySQL server during query') sqlalchemy.exc.OperationalError: (OperationalError) (2003, "Can't connect to MySQL server on...) According to: http://stackoverflow.com/questions/1209640/how-do-you-control-mysql-timeouts-from-sqlalchemy That time of 15 minutes is related to the TCP level configuration of the client, and I could reduce it for instance with: ~# sysctl net.ipv4.tcp_retries2=1 In this way I could get the exception in 1 second, but this configuration change for all the TCP connections of the operating system, that is undesirable. Is there a way to control the connection timeout on client side only for the sqlalchemy session? And get an exception if the server cannot be reached during the dumping phase, after a limited time duration (e.g. after 1 second, I don't want to wait 15 minutes)? Thanks -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.