Как RestBase wiki справляется с кэшированием - PullRequest
0 голосов
/ 05 апреля 2019

После установки RestBase с использованием стандартного конфига у меня есть рабочая версия итогового 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));
    }

1 Ответ

1 голос
/ 06 апреля 2019

Аннулирование кэша выполняется службой распространения изменений , которая запускается при редактировании страницы и аналогичных событиях.Заголовки управления кэшем, вероятно, установлены в логике Varnish VCL.См. здесь для полной диаграммы инфраструктуры Викимедиа - она ​​устарела, но дает вам общее представление о том, как все соединено.

...