直接执行自定义SQL时,查询超时在django-mssql中过期

时间:2015-05-14 12:15:18

标签: sql django django-mssql

我正在查询一个会返回大量数据并需要超过1分钟才能完成的视图。

我正在使用django.db.connection.cursor()执行查询,因为这不是我的默认数据库。 30秒后,我收到一个异常'查询超时已过期'。我认为30秒是django-mssql的默认超时。有没有办法增加超时时间或有其他方法。

无法处理SQL查询,因为它是由另一方实施的。只露出一个视图。

str(Exception)是"( - 2147352567,'发生异常。',(0,u'用于SQL Server的Microsoft OLE DB提供程序',u' ;查询超时已过期',无,0,-2147217871),无)"

1 个答案:

答案 0 :(得分:5)

您可以在django设置文件中调整数据库配置中的COMMAND_TIMEOUT。使用COMMAND_TIMEOUT的示例:

DATABASES = {
'default': {
    'NAME': DATABASE_NAME,
    'ENGINE': 'sqlserver_ado',
    'HOST': DATABASE_HOST,
    'USER': DATABASE_USER,
    'PASSWORD': DATABASE_PASSWORD,
    'COMMAND_TIMEOUT': DATABASE_COMMAND_TIMEOUT,
   }
}