Канал Django сохранить запись чата после последнего пользователя покинуть комнату - PullRequest
0 голосов
/ 12 ноября 2018

Привет, я новичок в любом асинхронном кодировании, поэтому официальная библиотека замечательных django-каналов немного запутана для меня.

Мне удалось определить процесс ORM после отправки сообщения, чтобы сохранить сообщение в БД.Это будет легко.

Однако представьте, что 5000 пользователей одновременно отправляют сообщения.БД легко будет перегружена, даже если я использую очередь задач сельдерея.Кроме того, БД может легко накапливать миллионы строк за короткий период.

Я предполагаю, что есть способ собрать все устаревшие сообщения на канальном уровне и при закрытии слоя (последний выход пользователя, подключение через веб-сокет =0), сохранить их в JsonField как одну строку?

TLDR: как проверить завершение слоя и после этого как получить все отправленные сообщения?Где они хранятся в памяти?

Текущая мысль о наивном методе: создать регистр памяти (как база данных, но только в памяти) для каждого канала и поместить все сообщения туда, как они отправили.Затем, когда веб-сокет завершается, активируйте код сохранения.Но тогда, как создать этот вид поддельной базы данных, который существует только в памяти?

Оцените все предложения!

...