Время ожидания запроса истекло в 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,
   }
}
Другие вопросы по тегам