如何设置oracle的django数据库请求超时

SangminKim

我想为数据库请求设置超时,以便它可以处理某些异常长时间阻止的请求。

我首先尝试了以下带有connect_timeout属性的配置

DATABASES = {
             'default': {
                         'ENGINE': 'django.db.backends.oracle',
                         'NAME': 'orcl',
                         'USER': 'smkim',
                         'PASSWORD': '1123',
                         'HOST': '168.192.15.18',
                         'OPTIONS' : {
                                      "connect_timeout": 60,
                                      },
                         'CONN_MAX_AGE' : 60,
                         'PORT': '1521',
                         }
             }

但是,返回此异常似乎不起作用。

TypeError:“ connect_timeout”是此函数的无效关键字参数

另外,这不是我想要的东西,因为attribute(connect_timeout)似乎仅用于连接。(就我而言,它将具有持久连接)

有什么建议么?

SangminKim

我可以通过oracle客户端设置onsqlnet.ora而不是on来做到这一点Django

SQLNET.SEND_TIMEOUT = 10  # in seconds
SQLNET.RECV_TIMEOUT = 10  # in seconds

这样,当Djangodjang.db.DatabaseError达到我指定的超时时间(此处为10秒)时,Django将使用oracle错误代码返回Exception。

您可以获取如下的oracle错误代码

try:
   models.A.objects.get(id=1)  # In here, timeout occur

except django.db.DatabaseError as e:
   oracleErr = e.args[0]
   print 'errorMsg  : %s' % oracleErr.message
   print 'errorCode : %d' % oracleErr.code

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何配置数据库设置 Django-MSSQL (windows)?

如何在Django中设置PostgreSQL数据库

Django:如何为MySQL数据库设置正确的位置

如何设置Liquibase数据库连接超时和重试计数?

django请求远程数据库

在实体框架中设置数据库超时

为Firebase数据库读取查询设置超时

在CodeIgniter 3中设置数据库连接超时

Django 从填充的数据库设置测试?

django:如何使用django数据库设置在远程服务器上使用Fabric引导/创建数据库

如何在 forms.BooleanField 中传递请求以从 Django 中的数据库获取数据?

将角色设置为Django ORM上的Oracle数据库用户

如何为Django Rest HTTP请求设置超时

如何防止数据库连接在Rails中超时?

如何减少创建c3p0 ComboPooledDataSource并获得Oracle数据库连接的超时时间?

如何使用cx_oracle django软件包连接到Oracle旧版数据库?

如何设置数据库的时区

如何从数据库设置SelectList值

如何获得Oracle数据库版本?

如何迁移Oracle数据库

Oracle数据库可以发送请求到Servlet?

在Django Rest框架中发布请求后如何从数据库/模型返回值

如何在Django中动态修改数据库请求?

如何在 django 中每次不点击数据库来获取请求用户查询?

如何在Windows 7中为Oracle数据库设置DSN?

如何在Oracle数据库中设置max_string_size ='EXTENDED'?

如何将 oracle 19c 数据库设置为始终处于打开模式?

Django:如何在发布请求后将数据保存到数据库之前如何检查数据是否正确?

从表单到Django上的原始数据库的请求