RestBase wiki 如何处理缓存
How RestBase wiki handle caching
在使用标准配置安装 RestBase 之后,我有了摘要 API 的工作版本。
缓存机制对我来说似乎很奇怪的问题。
这段代码将决定是否查看 table 缓存以获得快速响应。但是我不能使它成为服务器缓存取决于一些时间限制(例如写入缓存时的最大年龄)。这意味着决定是否使用缓存完全取决于客户端。
谁能解释一下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));
}
缓存失效由 change propagation service, which is triggered on page edits and similar events. Cache control headers are probably set in the Varnish VCL logic. See here 完成,用于完整的维基媒体基础架构图 - 它已过时,但可以让您大致了解事物是如何连接在一起的。
在使用标准配置安装 RestBase 之后,我有了摘要 API 的工作版本。
缓存机制对我来说似乎很奇怪的问题。 这段代码将决定是否查看 table 缓存以获得快速响应。但是我不能使它成为服务器缓存取决于一些时间限制(例如写入缓存时的最大年龄)。这意味着决定是否使用缓存完全取决于客户端。
谁能解释一下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));
}
缓存失效由 change propagation service, which is triggered on page edits and similar events. Cache control headers are probably set in the Varnish VCL logic. See here 完成,用于完整的维基媒体基础架构图 - 它已过时,但可以让您大致了解事物是如何连接在一起的。