Python 是在本地机上运行的, SQL Server 在服务器上。每个进程每次大概读取几千条数据,计算完成后再读下面几千条。刚开始连接的一段时间内都可以正常的接受数据并计算,然而一段时间后所有进程都会报出:
'08S01', '[08S01] [Microsoft][ODBC SQL Server Driver]通讯链接失败 (0) (SQLExecDirectW)'
可以确认的是这个时候的网络并没有中断,并且重启程序后恢复正常,直到一段时间后再次出错。我怀疑是 SQL Server 的连接数过多导致错误,但是程序的进程数是固定的,而且每次读取数据并不建立新的 Cursor 。
# 这个调用了一次
def connect():
cursor = None
try:
mssql_connection = pyodbc.connect('DRIVER={{SQL Server}};SERVER={};DATABASE={};UID={};PWD={}'.format(SERVER_NAME, DB_NAME, DB_USER_NAME, DB_USER_PWD), unicode_results=True)
cursor = mssql_connection.cursor()
except:
traceback.print_exc()
return cursor
现在没头绪了……希望有过来人提供下思路,求轻喷
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.