0

我正在对 Django 网站(v1.4.1)进行一些简单的分析。鉴于几乎每个服务器请求都会收集这些数据,我认为正确的方法是使用一个自定义中间件。

该网站的一个重要指标是访问给定图像的频率。由于每个图像都是它自己的对象,我考虑过使用django-hitcount,但认为这对于我想做的事情是不必要的。如果证明它更容易,我可能会使用它。

我当前面临的难题是我不想查询数据库并为发生的每个 HttpRequest 查找给定对象。相反,我想等到成功响应(由 200 或其他值的 HttpResponse.status 指示),然后查询服务器并更新相应图像的命中字段。访问图像路径的唯一方法是在 process_request 中,而访问状态码的唯一方法是在 process_response 中。

那么,我该怎么办?是否像创建一个可以保存路径的类变量一样简单,然后在返回 200 的响应代码后查找文件,还是我应该只使用 django-hitcount?

谢谢你的帮助

4

2 回答 2

1

设置一个 cron 任务以定期解析您的 Apache/Nginx/whatever 访问日志,可能使用pylogsparser 之类的东西。

于 2013-07-04T08:05:59.237 回答
0

您可以使用 memcache 来存储计数器,然后定期将它们保存到数据库中。memcache 有可能在值被持久化之前将其逐出,但这对您来说是可以接受的。

本文提供了更多信息,并强调了使用托管 memcache 和分布在多个服务器上的密钥时出现的风险。http://bjk5.com/post/36567537399/dangers-of-using-memcache-counters-for-ab-tests

于 2013-07-04T09:14:10.530 回答