Как организовать умную очередь?

Реализовывал на днях изменение размера изображений, пользователь выбирает размер, жмет кнопочку, ждет, получает изображение.


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


Экономия? Да.


Но сонный мозг работает иначе, мысль — а что если делать тоже самое но только с запросами к БД? Немного переделал код — работает.


И ведь действительно, это будет сильно быстрее (если у вас очень много одновременных запросов), это как кэш только немного выше (с).


Но вопрос о другом, если подобное реализовать на nginx, только тут уже не изображения и не запросы к БД, речь о proxy_ или fastcgi_, насколько сложно а может просто глупо?


P.S Подобным образом работает firefox, если одновременно открыть две одинаковые (по url) страницы — вторая возьмется с кэша от первой.
  • Вопрос задан
  • 2615 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 2
avalak
@avalak
Я не совсем понял что вы хотите, но nginx — кеширующий прокси и да он может закешировать страницу на некоторое время и отдавать её из кеша, не беспокоя движок.
fastcgi_cache
Важно только подобрать правильный ключ и удалять куки.
Ответ написан
Snowindy
@Snowindy
Не уверен про MySQL, но Oracle, к примеру, уже делает за вас эту работу по кэшированию данных частых запросов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы