【发布时间】:2014-03-20 10:28:53
【问题描述】:
我有一个 django 应用程序,它使用 SQLAlchemy 连接到 Windows Azure 上的 SQL Server 实例。该应用程序在本地 SQL Server 实例上运行了 3 个月,在 Azure 实例上运行了一个多月。在一周没有任何代码更改之后,这个问题出现在这个星期一。
网站使用:
- Python 2.7
- Django 1.6
- Apache/Nginx
- SQLAlchemy 0.9.3
- pyODBC 3.0.7
- 免费TDS
从池中拉出连接后,应用程序似乎立即锁定(我在工作流程的每个点都设置了详细日志记录)。我认为这与连接过时有关。所以我们尝试让 pool_recycle 非常短(5 秒),一直到一个小时。那没有帮助。
我们还尝试使用 NullPool 在每个页面视图上强制建立新连接。然而,这也无济于事。大约 15 分钟后,该站点将再次完全锁定(意味着无法查看使用数据库的页面)。
奇怪的是,一半遇到“挂起”的计算机,最终会在大约 15 分钟后加载页面。
有人使用过 SQL Azure 和 SQLAlchemy 吗?
【问题讨论】:
标签: python django sqlalchemy azure-sql-database pyodbc