2013-07-04 4 views
0

Я работаю над простыми аналитиками на веб-сайте Django (v1.4.1). Увидев, что эти данные будут собраны почти в каждом запросе на сервер, я решил, что правильный способ сделать это будет с куском пользовательского промежуточного программного обеспечения.Обновление счетчика при обращении к обращению в Django

Важным показателем для сайта является то, как часто данные изображения доступны. Поскольку каждый образ является его собственным объектом, я подумал об использовании django-hitcount, но понял, что это не нужно для того, что я пытался сделать. Если это окажется проще, я могу использовать его.

Текущая загадка, с которой я сталкиваюсь, заключается в том, что я не хочу запрашивать базу данных и искать данный объект для каждого возникающего HttpRequest. Вместо этого я хотел бы подождать до успешного ответа (обозначенного HttpResponse.status из 200 или любого другого), а затем запросить сервер и обновить поле попадания для соответствующего изображения. Причина, по которой единственный путь доступа к пути изображения находится в process_request, в то время как единственный способ доступа к коду состояния находится в process_response.

Итак, что мне делать? Это так же просто, как создание переменной класса, которая может удерживать путь, а затем искать файл после возврата кода ответа 200 или использовать только django-hitcount?

Спасибо за вашу помощь

ответ

1

Настройка задачи хрон для синтаксического анализа вашего Apache/Nginx/все журналы доступа на регулярной основе, возможно, что-то вроде pylogsparser.

0

Вы можете использовать memcache для хранения счетчиков, а затем периодически сохранять их в базе данных. Существуют риски того, что memcache выведет значение до того, как оно будет сохранено, но это может быть приемлемым для вас.

В этой статье приводится дополнительная информация и раскрывается риск возникновения при использовании размещенного memcache с ключами, распределенными на нескольких серверах. http://bjk5.com/post/36567537399/dangers-of-using-memcache-counters-for-a-b-tests