Rails-сервер приложений Puma - PullRequest
0 голосов
/ 09 июня 2018

Я создаю приложение чата (использую сервер puma с максимальным числом потоков 20 и параллельным доступом wen 5).В этом приложении сообщение после отправки пользователем сохраняется и добавляется на стороне получателя через сокет.Но если пользователь набирает больше сообщений быстрее, порядок сообщений меняется.Как получить сохраненные записи в заказе

1 Ответ

0 голосов
/ 13 июня 2018

Если вы используете технологии push / polling (SSE / WebSockets / AJAX) для получения данных чата, рассмотрите возможность добавления к сообщениям отметки времени в миллисекундах.

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

Кроме того, минимизация времени обработки сервером каждого сообщения минимизирует проблемы с планированием.

Это включает в себя выбор более быстрой технологии / решенияа также увеличение параллелизма или отделение "события" хранилища базы данных от схемы обработки событий "push" (которая обычно не нужна и менее идеальна, но обеспечивает более высокое время реакции).

...