RestBase-wiki如何处理缓存

RestBase-wiki如何处理缓存,rest,api,wikipedia-api,Rest,Api,Wikipedia Api,在安装了using standard config之后,我有了一个summary API的工作版本 问题是缓存机制对我来说似乎很奇怪。 这段代码将决定是否查看表缓存以获得快速响应。但我不能让它成为一个服务器缓存,例如,在写入缓存时,它依赖于某个时间约束最大年龄。这意味着是否使用缓存完全取决于客户端 有人能解释一下RestBase缓存机制的工作流程吗 // Inside key.value.js getRevision(hyper, req) { //This one get the he

在安装了using standard config之后,我有了一个summary API的工作版本

问题是缓存机制对我来说似乎很奇怪。 这段代码将决定是否查看表缓存以获得快速响应。但我不能让它成为一个服务器缓存,例如,在写入缓存时,它依赖于某个时间约束最大年龄。这意味着是否使用缓存完全取决于客户端

有人能解释一下RestBase缓存机制的工作流程吗

 // Inside key.value.js
   getRevision(hyper, req) {
//This one get the header from client request and decide to use cache 
or not depend on the value. Does it mean server caching is non-existent?
        if (mwUtil.isNoCacheRequest(req)) {
            throw new HTTPError({ status: 404 });
        }
//If should use cache, below run
        const rp = req.params;
        const storeReq = {
            uri: new URI([rp.domain, 'sys', 'table', rp.bucket, '']),
            body: {
                table: rp.bucket,
                attributes: {
                    key: rp.key
                },
                limit: 1
            }
        };
        return hyper.get(storeReq).then(returnRevision(req));
    }

缓存失效由执行,在页面编辑和类似事件时触发。缓存控制头可能在VCL逻辑中设置。请参阅完整的Wikimedia基础架构图-它已经过时,但为您提供了如何将事物连接在一起的一般概念。

Mz Wikimedia安装是一个遵循标准指南的小型安装,我不认为他们使用Kafka进行更改传播服务。这是否意味着RESTBase没有内置的缓存失效,而是依赖于其他基础结构?好吧,失效总是依赖于其他基础结构,因为RESTBase本身无法知道何时失效。如果你指的是过期,我相信它可以通过中间件进行配置,但默认行为取决于Wikimedia如何使用它,因为它主要是作为一个内部工具。