我们有某些系统管理员设置,我们会向 django webapp 的超级用户公开这些设置。诸如域名(使用 contrib.sites)和单点登录配置之类的东西。其中一些设置被系统缓存,有时是因为我们希望避免在每个请求的中间件中额外的数据库命中,如果我们可以帮助它,有时是因为它是 contrib.sites,它有自己的缓存。因此,当设置更改时,更改在重新加载应用程序之前不会生效。
我们希望应用程序在进行这些更改时自行重新启动,这样我们的客户就不需要纠缠我们为他们重新启动。
我们的 webapp 是通过 mod_wsgi 在 apache 上运行的,所以只要更改这些设置中的一个,我们应该可以通过触摸应用程序的 wsgi 文件来做到这一点,但这样做感觉有点奇怪,我担心会有我们应该遵循一些更优雅的约定。
是否有正确的方法来应用缓存并要求重新加载应用程序的更新?使这些东西的缓存失效会很麻烦,所以我想我会避免这种情况,除非应用程序重启有严重的缺陷。