Django应用程序中的全局计数器?

2024-06-11 16:04:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道Django应用程序中是否有“global counter”,就像我在Tomcat的Servlet上下文范围中存储“global counter”一样。在

有点像

getServletContext().getAttribute(“counter”); 计数器++


Tags: django应用程序counter计数器globaltomcatservletgetattribute
1条回答
网友
1楼 · 发布于 2024-06-11 16:04:28

当您编写django应用程序(或任何wsgi应用程序)时,您事先不知道您的应用程序最终是在单个服务器上独立运行,还是在多个多线程、多处理,甚至在多个独立的机器上作为负载平衡策略的一部分运行。在

如果您要使约束“我的应用程序仅在单进程服务器上工作”,那么可以使用如下方法:

from django import settings
settings.counter += 1

然而,这种限制通常是不可行的。所以你必须使用外部存储器。在

如果你想把它保存在内存中,也许是一个memcached

也许你只需要将请求记录到这个视图中。所以当你需要计数器时,只需计算日志中的条目数。在

日志可以是基于文件的,也可以是数据库中的一个表,只需在models.py上定义一个新模型。在

相关问题 更多 >