Возвращать изображение рамки и аватара по ID пользователя - было бы решением части проблемы, но к сожалению, имя файла той же рамки на сервере будет с uuid в названии. Это всё ещё решение, если каждый раз из кэша запрашивать какой файл соответствует этому ID, и возвращать результат.
Тогда легко сбросить/обновить кэш из кода, и вообще выглядит вкусно.
Как минус - обращение к такой ссылке каждый раз будет дёргать кэш.
Схема кажется рабочей, но учитывая что обращение к изображению по такой ссылке всегда будет дёргать кэш - кажется более правильным самим сервером приклеить URL к ответу. Тогда это частично возврат к абзацу: "Пробовали отказаться от Join-ов и собирать ответ..."
На примере /tickets/91/update - получается что для реализации такого метода, придётся вытянуть список всех тикетов пользователя, а затем выпилить из кэша то что там может висеть? И всё равно придётся пробегаться по тому, чего в кэше может и не быть.
Дмитрий, очевидные вещи.
Проблема как раз в том что никакой прямой связи между "рамкой" и "тикетами" нет.
Чтобы дропнуть кэш в тикетах, получается такая цепочка:
1. Администратор обновляет картинку рамки
2. Получить всех пользователей с этой рамкой (привет ~10к юзеров, и затем ещё больше)
3. Очистить кэш всех этих пользователей (~10k del вызовов)
4. Получить все тикеты этих пользователей (~65% создавали тикет, а это мин. 6500 юзеров)
5. Почистить кэш выборки всех тикетов где есть этот пользователь. (собственно мин. 6500 проверочек, а del вызовется ~100-200 раз)
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Тогда легко сбросить/обновить кэш из кода, и вообще выглядит вкусно.
Как минус - обращение к такой ссылке каждый раз будет дёргать кэш.
Схема кажется рабочей, но учитывая что обращение к изображению по такой ссылке всегда будет дёргать кэш - кажется более правильным самим сервером приклеить URL к ответу. Тогда это частично возврат к абзацу: "Пробовали отказаться от Join-ов и собирать ответ..."
На примере /tickets/91/update - получается что для реализации такого метода, придётся вытянуть список всех тикетов пользователя, а затем выпилить из кэша то что там может висеть? И всё равно придётся пробегаться по тому, чего в кэше может и не быть.