У меня есть какой-то абстрактный вопрос, касающийся управления живыми каналами / опросами на веб-сайтах.
Я создаю веб-приложение (построенное на Java / Spring / Hibernate) и на домашней странице пользователя хочупрямая трансляция последних действий от всех членов этой команды, и я пытаюсь найти лучший способ обработать этот запрос на стороне сервера.
Грубым способом было бы загрузить текущих пользователейсписок товарищей по команде, а затем перебирать каждого из его товарищей по команде, загружать их последние разговоры / загрузки файлов / и т. д., а затем объединять все эти действия в один список, отсортированный по метке времени, и возвращать его (скажем, для примера, чтомы просто возвращаем 10 самых последних действий для канала).
Однако это кажется очень неэффективным, особенно если эту операцию необходимо выполнять регулярно (в зависимости от интервала опроса).
Я также рассмотрел возможность продления всех потенциальных действий (разговоров / обновлений статуса / загрузки)использование класса Activity, а затем наличие прямого запроса SQL / JPQL в DAO, который выбирает все последние действия из набора возвращаемых пользователей, но обеспокоен тем, что это может обойти кэширование и постоянный доступ к БД также снизит производительность.
Кто-нибудь раньше решал подобные проблемы?Кто-нибудь знает, что такое хороший подход?
Спасибо!