Привет, я новичок в любом асинхронном кодировании, поэтому официальная библиотека замечательных django-каналов немного запутана для меня.
Мне удалось определить процесс ORM после отправки сообщения, чтобы сохранить сообщение в БД.Это будет легко.
Однако представьте, что 5000 пользователей одновременно отправляют сообщения.БД легко будет перегружена, даже если я использую очередь задач сельдерея.Кроме того, БД может легко накапливать миллионы строк за короткий период.
Я предполагаю, что есть способ собрать все устаревшие сообщения на канальном уровне и при закрытии слоя (последний выход пользователя, подключение через веб-сокет =0), сохранить их в JsonField как одну строку?
TLDR: как проверить завершение слоя и после этого как получить все отправленные сообщения?Где они хранятся в памяти?
Текущая мысль о наивном методе: создать регистр памяти (как база данных, но только в памяти) для каждого канала и поместить все сообщения туда, как они отправили.Затем, когда веб-сокет завершается, активируйте код сохранения.Но тогда, как создать этот вид поддельной базы данных, который существует только в памяти?
Оцените все предложения!