Назад | Перейти на главную страницу

Кеш, который всегда возвращает немедленный ответ?

У меня есть веб-сервис, который требует времени, чтобы получить ответ, несмотря на то, что он настроен как можно лучше.

Я бы хотел, чтобы перед службой был какой-то кеш, который всегда возвращал бы последнее известное значение из службы, но в то же время передавал бы запрос обратно в службу, чтобы создать обновленный ответ для следующего запрос.

Я знаю об ограничениях, которые это накладывает на свежесть данных, но вы можете предположить, что я счастлив смириться с этим.

Технологии, которые я использую в настоящее время, - это python uwsgi через nginx, но это не должно быть ограничением для любого решения, которое вы можете предложить.

Col

Предполагая, что вам нужен обратный прокси, вы можете использовать Varnish в режиме святого или squid с директивой stale-if-error.

Если вам нужен кеш внутри приложения, например, используя memcached, просто не полагайтесь на механизм истечения срока хранения - срок хранения с кешированным объектом array(cached_object=>object, expiry=>timestamp) и отреагируйте, если вы столкнетесь с устаревшим кешем: увеличьте срок действия до настоящего + немного времени (для предотвращения собачьей проверки - несколько процессов, регенерирующих кеш параллельно), используйте устаревший кеш, инициализируйте обновление.