Время ожидания запроса истекло в django-mssql при непосредственном выполнении пользовательского SQL
Я запрашиваю представление, которое будет возвращать огромные данные и занимает более 1 минуты.
Я выполняю запрос с помощью django.db.connection.cursor(), так как это не моя база данных по умолчанию. Через 30 секунд я получаю исключение "Время ожидания запроса истекло". Я думаю, 30 секунд - это тайм-аут по умолчанию для django-mssql. Есть ли способ увеличить период ожидания или есть какой-то другой способ.
Не может работать с запросом SQL, потому что он реализован другой стороной. Только вид выставлен.
str(Exception)
is "(-2147352567, 'Возникло исключение.', (0, u'Microsoft OLE DB Provider для SQL Server', истекло время ожидания запроса u', Нет, 0, -2147217871), Нет)"
1 ответ
Вы можете настроить COMMAND_TIMEOUT в конфигурации базы данных, в вашем файле настроек django. Пример использования COMMAND_TIMEOUT:
DATABASES = {
'default': {
'NAME': DATABASE_NAME,
'ENGINE': 'sqlserver_ado',
'HOST': DATABASE_HOST,
'USER': DATABASE_USER,
'PASSWORD': DATABASE_PASSWORD,
'COMMAND_TIMEOUT': DATABASE_COMMAND_TIMEOUT,
}
}