gpt4 book ai didi

django - 有没有办法忽略 Django 中的缓存错误?

转载 作者:行者123 更新时间:2023-12-02 06:25:19 26 4
gpt4 key购买 nike

我刚刚将我们的开发 Django 站点设置为使用 redis 作为缓存后端,一切正常。我关闭了 redis 来看看会发生什么,果然由于缓存后端行为而出现了 Django 404。连接被拒绝,或者各种其他错误。

有什么方法可以指示 Django 忽略缓存错误,并继续正常处理吗?缓存是一种性能优化,但如果失败可能会导致整个站点瘫痪,这似乎很奇怪。

我尝试在后端编写一个包装器,如下所示:

class CacheClass(redis_backend.CacheClass):
""" Wraps the desired Cache, and falls back to global_settings default on init failure """
def __init__(self, server, params):
try:
super(CacheClass, self).__init__(server, params)
except Exception:
from django.core import cache as _
_.cache = _.get_cache('locmem://')

但这行不通,因为我试图在设置缓存类型的调用中设置缓存类型。这真是一团糟。

那么,有什么简单的方法可以克服缓存错误吗?或者在失败时设置默认缓存后端?

最佳答案

看看django-cache-fallback:

https://pypi.python.org/pypi/django-cache-fallback/0.2.1

CACHES = {
# Set default cache to FallbackCache
'default': {
'BACKEND': 'cache_fallback.FallbackCache',
},
# Your production main cache (Redis, for example)
'main_cache': {
'BACKEND': 'redis_lock.django_cache.RedisCache',
'LOCATION': redis_url,
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
},
'TIMEOUT': 500,
},
# Use dummy cache to ignore main cache errors and get data from DB
'fallback_cache': {
'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
}
}

关于django - 有没有办法忽略 Django 中的缓存错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4515886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com