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

时间:2009-09-25 03:18:25

标签: python django

我想知道Django应用程序中是否存在“全局计数器”,就像我在Tomcat的Servlet Context范围中存储“全局计数器”一样。

类似

getServletContext()方法的getAttribute( “计数器”);  计数器++;

1 个答案:

答案 0 :(得分:1)

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

如果您要制定约束“我的应用程序仅适用于单进程服务器”,那么您可以使用以下内容:

from django import settings
settings.counter += 1

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

如果你想把它保存在内存中,可能是memcached

也许您只需将请求记录到此视图即可。因此,当您希望计数器只计算日志中的条目数时。

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