Как вики RestBase обрабатывает кеширование

После установки 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));
    }
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Аннулирование кеша выполняется служба распространения изменений, который запускается при редактировании страницы и подобных событиях. Заголовки управления кэшем, вероятно, установлены в логике Лак VCL. Полную диаграмму инфраструктуры Викимедиа см. в здесь — она устарела, но дает общее представление о том, как все взаимосвязано.

Установка Mz wikimedia небольшая, она следует стандартному руководству, и я не думаю, что они используют Kafka для службы распространения изменений. Означает ли это, что RESTBase не имеет встроенной инвалидации кэширования, а полагается на другую инфраструктуру?

Loredra L 08.04.2019 11:20

Что ж, аннулирование всегда должно полагаться на другую инфраструктуру, поскольку сама RESTBase не может знать, когда аннулировать. Если вы имеете в виду истечение срока действия, я уверен, что его можно настроить с помощью промежуточного программного обеспечения, но поведение по умолчанию основано на том, как его использует Викимедиа, поскольку оно в первую очередь предназначалось для внутреннего использования.

Tgr 08.04.2019 19:16

Другие вопросы по теме