我想使用Django设置无限期地存储一个值。此值将在服务器进程的整个生命周期内更改,不应忘记。看,我想要做的是在我的服务器的文件系统上生成一个静态文件,并将其生成时间存储在django.conf.settings中。
我非常清楚fcgi服务器重启后所有设置都会丢失,这没关系。但是,我看到的行为(和问题)是设置每隔一段时间重置一次。我无法确定它被重置的原因,似乎相当随机。
有没有人知道Django是否经常重置其设置?或者我应该在逻辑中寻找错误?如何实现我想要的另一种方式呢?这可能与以线程模式运行fcgi服务器有关吗?
我可能最终将时间戳写入文件系统,我们将看到......
PS:当我使用Django的本地lighttp服务器时,我的代码按预期工作。
PPS: Django的缓存框架可能是获得我想要的聪明方式,但此时我无法使用它:(< / p>
答案 0 :(得分:0)
所以对这个问题的简短回答:不要将全局运行时数据存储在Django的设置中。每个新的流程线程都会创建自己的设置实例,这意味着您的应用程序在每个线程中的行为都不同,或者您必须以单线程模式运行您的应用程序(对性能不利)。
如果您需要存储此类数据,请使用Django缓存框架,数据库或文件系统。