我使用G-WAN开发一个网站,为了显示一些统计数据,我想计算一个带有静态URI的页面被调用了多少次,但是使用G-WAN的自动缓存系统,我的计数器有时会出错。是否有办法完全禁用此缓存。我已经用G-WAN提供的KV存储开发了一个缓存系统,这样我就可以正确地计数和提供缓存的页面,所以我真的不需要G-WAN的自动缓存系统……如果有人能解决我的问题,我很感兴趣。
欢呼杰罗姆
下面是您可以做的示例(假设您只跟踪特定的url):
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
我明白你在问什么,但是手册和创造者之前对这个主题的回答非常清楚。
简单地说,由于各种原因不可能禁用微缓存,简单的方法是为每个请求添加查询字符串或参数:
?要求/1
?要求/
您可以忽略自动添加到"查询字符串"的任何内容,并且仍然可以为您的统计数据处理相同的"页面"或servlet。
另一方面,所有调用都记录在主机/虚拟主机的日志文件夹中。或者使用代码作为google分析。
这里的问题更多的是为什么你需要这些统计数据?向用户展示?-这通常不是用户需要的功能。我相信用户更希望从微缓存的GWAN服务器获得快速的答案,而不是从另一个服务器获得带有统计信息的慢速答案。这些数据适合你吗?—只使用GWAN服务器主机/虚拟主机日志。
如果你真的需要给用户特殊的反馈,为什么不使用彗星流发送信息,如http://gwan.ch/api#comet