2013-04-07 4 views
0

Я использую G-WAN для разработки веб-сайта, и я хотел бы подсчитать, сколько страниц со статическим URI было вызвано, чтобы отобразить некоторые статистика, но с автоматической системой кэширования G-WAN мой счетчик иногда ошибается. Есть ли способ полностью отключить этот кеш. Я уже разработал систему кеширования с хранилищем KV, снабженную G-WAN, и таким образом я могу правильно подсчитывать и обслуживать кешированную страницу, поэтому мне действительно не нужна автоматическая система кеширования G-WAN ... Если кто-то имеет решение моей проблемы мне интересно.как отключить микро кэширование в G-WAN со статическим URI, совместно используемым пользователям

Приветствия Жером

+0

Если ваша цель состоит в URI COUNT, то используйте обработчик G-WAN, это будет срабатывать до того, как произойдет любое кэширование. – Gil

+0

это именно то, что я хочу сделать, вместо подсчета в моем скрипте, расположенном в папке csp, я буду считать использование обработчика. Спасибо – user1606908

ответ

0

Я понимаю, что вы просите, но руководство и предыдущие ответы Творца на эту тему вполне понятны.

Проще говоря, это не возможно, чтобы отключить микро-кэширования для различных причин и простой способ вокруг него, чтобы добавить строку запроса или аргумент каждого запроса:

REQ/1

? Req/a

Вы можете игнорировать все, что вы автоматически добавили в строку запроса, и по-прежнему работать с той же «страницей» или сервлетами для своей статистики.

+0

Спасибо за ответ. Я думаю, что я буду использовать nginx, который уже находится в интерфейсе g-wan, чтобы добавить случайный параметр. – user1606908

+0

Было бы неплохо иметь возможность дезактивировать или активировать механизм автоматического кэширования, потому что в некоторых случаях это скорее проблема, чем оптимизация. – user1606908

+0

Кэширование отключено по умолчанию и может быть включено только в файле 'gwan/init.c' ... – Gil

0

С другой стороны, все вызовы регистрируются в папке журнала хоста/виртуального хоста. Или используя код в качестве аналитики Google.

Вопрос здесь, почему вам нужна эта статистика? Чтобы показать пользователю? - это обычно не функция, которая потребуется пользователю. Я считаю, что пользователь будет более заинтересован в получении быстрого ответа от микро-кэшированного сервера GWAN, чем медленный ответ со статистической информацией с другого сервера. Ваши статистические данные? - Просто используйте журнал хоста/виртуального хоста сервера GWAN.

Если вам действительно нужно уделять особое обратную связь с пользователем, почему не использовать кометы потоковую отправить эту информацию, как указано на http://gwan.ch/api#comet

+0

Статистика для пользователя в противном случае я бы использовал Google Analytics. Разбор файла журнала может быть решением, но я уже внедрил модуль статистики, подсчитывая входящие запросы. – user1606908

+0

Чтобы подсчитать URI, используйте обработчик G-WAN, он выполняется до того, как будет выполнено кэширование. – Gil

2

Вот пример того, что и можно сделать (если вы прослеживать только конкретные адреса):

case HDL_AFTER_PARSE:{ 
    data_t * pp = *(data_t**)get_env(argv,US_SERVER_DATA); 
    char *qs=get_env(argv,QUERY_STRING); 
    if(qs&&!strncmp(qs,"i_count_those",sizeof("i_count_those")-1)){ 
     ++pp->count; 
    } 
} break; 
//this is obviously code for handler 
+0

Благодарю вас за пример. Фактически я подсчитываю каждый запрос, а не только определенный URL. Если я рассчитываю использовать обработчик, вы имеете в виду, что механизм микрокаширования не будет применяться раньше? – user1606908

+0

«Я считаю, что с помощью обработчика вы имеете в виду, что механизм микрокаширования не будет применяться раньше?». Да ucache не получится. Но если u count * ВСЕ * запросы просто делают -> get_env (argv, CC_HTTP_REQ); – deepinit

+0

CC_HTTP_REQ дает глобальный счетчик для всех запросов, но я хочу рассчитывать на каждый URI.Но добавление случайного параметра, такого как client_IP_dateTime или подсчета с использованием обработчика, может быть решением – user1606908