在Django中,如何设置数据库连接超时?

时间:2013-11-04 11:46:19

标签: python database django caching django-cache

好的,我知道这不是那么简单。我在settings.py中定义了两个数据库连接:defaultcache。我正在使用来自DatabaseCache的{​​{1}}后端。我定义了数据库路由器,所以我可以为我的模型和缓存使用单独的数据库/模式/表。完美!

现在有时我的缓存数据库不可用,有两种情况:

  1. 当数据库崩溃时已经建立了与数据库的连接 - 这很容易 - 我可以使用这个方法:http://code.activestate.com/recipes/576780-timeout-for-nearly-any-callable/并将我的查询包装成这样:

    django.core.cache
  2. 尚未建立与数据库的连接 - 所以我需要在try: timelimited(TIMEOUT, self._meta.cache.get, cache_key)) expect TimeLimitExprired: # live without cache 中包含实际建立数据库连接的部分代码。但是我不知道这样的代码存在于何处以及如何有选择地包装它(即仅包装timelimited连接,在没有超时的情况下保持cache连接)

  3. 你知道怎么做第2点吗?

    请注意,此答案https://stackoverflow.com/a/1084571/940208不正确:

    default

    没有给出结果,据我所知,cx_Oracle驱动程序不支持此参数。

0 个答案:

没有答案