Я только что настроил наш сайт 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://')
Но это не сработает, так как я пытаюсь установить тип кэша в вызове, который устанавливает тип кэша. Это все очень большой беспорядок.
Итак, есть ли простой способ проглотить ошибки кеша? Или установить бэкэнд по умолчанию для кэша при сбое?