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

2024-01-09

我刚刚将我们的开发 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://')

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

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


Look at django 缓存回退:

https://pypi.python.org/pypi/django-cache-fallback/0.2.1 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',
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法忽略 Django 中的缓存错误? 的相关文章

  • 将文件上传到S3的模拟测试用例

    我们如何模拟文件上传到 S3 我尝试过这样的事情 file mock mock MagicMock spec File name FileMock mock patch storages backends s3boto S3BotoStor
  • Django 星级评定系统和 AJAX

    我正在尝试在 Django 网站上实现星级评级系统 在我的模型中存储评级是排序的 就像在页面上显示分数一样 但我希望用户能够对页面进行评分 基本上从 1 到 5 而无需刷新或更改页面 我发现了以下内容 并且喜欢这里明星的风格 http jv
  • 使用 Django ModelForm 上传个人资料图片

    我环顾过相关问题 但似乎没有一个答案有效 我正在尝试上传用户的个人资料图像并让它替换 覆盖 当前图像 保存图像后 我想将文件名更改为用户 ID 图像将以当前形式上传 但不会替换现有图像 例如 它将保存为 2 1 png class Phot
  • Django 管理员 - 登录

    我正在建造一个Django Web App 与 Django Suit 用于管理界面 已经让 Python 2 7 Django 1 10 和 MySQL 和谐通信并启动了一个项目 python m django admin startpr
  • Django 迁移 RunPython 无法调用模型方法

    我正在使用以下命令创建数据迁移RunPython方法 但是 当我尝试在对象上运行方法时 没有定义任何方法 是否可以使用调用模型上定义的方法RunPython 模型方法在迁移中不可用 包括数据迁移 然而 有一个解决方法 它应该与调用模型方法非
  • GeoDjango:距离对象不可序列化

    我刚刚学习 geo django 我可以找出所有地方到一个点的距离 但是当我使用 values方法注释distance场 我得到 TypeError Object of type Distance is not JSON serializa
  • 如何从 django imageFile 输入中获取图像

    我想从ImageField文件输入然后在模板中显示图像 最后将图像保存到模型中imageField The file image request POST get image 只获取图像名称 如何获取实际图像 我需要将图像上传到NamedT
  • Django 休息注册

    我正在使用 Django rest auth https github com Tivix django rest auth https github com Tivix django rest auth 在我的 django 项目中用于登
  • 如何使用 keyTextTransform() 进行嵌套 json?

    我的模型有一个 json 字段 我可以使用以下查询访问 jsonfield key1 from django contrib postgres fields jsonb import KeyTextTransform MyModel obj
  • 在 Django 中扩展 User 对象:用户模型继承还是使用 UserProfile?

    要使用自定义字段扩展 User 对象 Django 文档建议使用用户资料 http docs djangoproject com en dev topics auth storing additional information about
  • 如何为 bcrypt.hashpw 设置盐?

    salt yhnqazolr123098765 password bcrypt hashpw password salt repeatpassword bcrypt hashpw repeatpassword salt 我在第二行遇到错误
  • 如何在 django 模板中将名称反转为绝对 url?

    url url name 给出一个相对名称 我怎样才能做类似的事情 absolute url url name 这样它就会返回带基数的 url 包括端口 如果存在 有不同的解决方案 编写您自己的模板标签并使用 HttpRequest bui
  • django 在查询中计算相同字段值的最有效方法

    假设我有一个包含很多字段的模型 但我只关心一个 charfield 可以说 charfield 可以是任何东西 所以我不知道可能的值 但我知道这些值经常重叠 所以我可以有 20 个带有 abc 的对象和 10 个带有 xyz 的对象 或者我
  • 使用 Django REST 框架进行 SAML SSO 身份验证

    我目前正在开发 AngularJS 前端和 Django REST 后端 我一直在使用Django rest auth https github com Tivix django rest auth过去需要对两者之间的连接进行身份验证 但现
  • 在 Django 中翻译文件时的 Git 命令

    我在 Django 中有一个现有的应用程序 我想在页面上添加翻译 在页面上我有 trans Projects 在 po 文件中我添加了 templates staff site html 200 msgid Projects msgid P
  • 在 django admin 中自定义选择

    我有一个模型 其中一个字段是外键 所以我在 django admin 中看到选择 是否可以自定义此选择的标签 class Model models Model name models CharField def unicode self r
  • InterfaceError:连接已关闭(使用 django + celery + Scrapy)

    当我在 Celery 任务中使用 Scrapy 解析函数 有时可能需要 10 分钟 时 我得到了这个信息 我用 姜戈 1 6 5 django celery 3 1 16 芹菜 3 1 16 psycopg2 2 5 5 我也使用了psyc
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 如何让 Django 和 ReactJS 协同工作?

    New to Django and even newer to ReactJS I have been looking into AngularJS and ReactJS but decided on ReactJS It seemed

随机推荐