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