Python SQLAlchemy+MySQL连接阻塞数小时

Python SQLAlchemy+MySQL连接阻塞数小时,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,我通过AmazonRDS使用SQLAlchemy 0.9.1+MySQL 5.6.19a,在几个月的时间里,它在数十个进程同时读写的重载下运行良好。今天早上,我看到几个进程在尝试读取和/或写入数据库时被阻塞了几个小时 我正在使用SQLAlchemy文档中建议的会话范围: @contextmanager def session_scope(): """Provide a transactional scope around a series of SQLAlchemy operations

我通过AmazonRDS使用SQLAlchemy 0.9.1+MySQL 5.6.19a,在几个月的时间里,它在数十个进程同时读写的重载下运行良好。今天早上,我看到几个进程在尝试读取和/或写入数据库时被阻塞了几个小时

我正在使用SQLAlchemy文档中建议的会话范围:

@contextmanager
def session_scope():
    """Provide a transactional scope around a series of SQLAlchemy operations."""

    session = SESSION()
    try:
        yield session
        session.commit()
    except:
        session.rollback()
        raise
    finally:
        session.close()
例如:

with session_scope() as session:
    # Create a new record, set timestamp
    record = MetricsSnapshot()
    record.timestamp = timestamp
    session.add(record)
我发现我的代码从未引发异常。它似乎已经阻塞了大约四个小时,然后继续。我认为过去没有发生过,但我不确定是什么原因造成的


SQLAlchemy或MySQL中的超时设置得足够高,允许四小时延迟,这是可以想象的吗?还有什么我可以查出来的吗?

您的超时问题:如果您没有在SQLAlchemy中特别做任何事情来定义队列,超时将被定义为一个合理的值,可能是半分钟,请参阅。至于MySQL,老实说我不知道。至于你的问题,你没有日志或任何其他线索?@Irnzcig我有很多日志,但它们只是显示我的代码阻塞了大约4个小时,然后继续执行,如果出现异常,我会在日志中看到,但我没有看到。所以要说出发生了什么是相当棘手的!我无法想象任何超时默认值会这么高。但是为什么你怀疑问题是由ddbb引起的呢?你的过程可能会因为其他原因而受阻,而不是因为我对其他原因有很多想法。即使您的日志中没有异常,您是否看到任何操作开始并随后停止4小时?你在4个小时内没有看到任何手术?我知道你在问什么-抱歉搞混了!我确实在上面的代码块之前和之后看到了日志消息。所以我很确定我的进程在代码中的某个地方被阻塞了4个小时,然后在4个小时后它继续执行,没有问题。没问题!因此,您只需获得一个新会话并添加一个新寄存器。。。奇怪的无论如何,可能有一种解释没有假设ddbb是死锁。例如,在创建新记录时,python进程可能会暂停。这对你有意义吗?老实说,对我来说没什么。可能是计算机的任何资源的并发?你说这是沉重的负担。。。。我猜你没有关于机器本身状态的日志。。。对不起,我帮不了什么忙。