Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python 3.x websocket client / 2 сообщений из 2, страница 1 из 1
30.10.2018, 12:16
    #39724881
nuts577
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 3.x websocket client
Добрый день,

Не получается нагуглить как работает websocket-client. Предположим мы подсоединились к серверу и получаем от него сообщение, складываем в массив. Некоторые сообщения могут потребовать длительной (до пары секунд) обработки перед добавлением. Выносить в отдельный тред не хочу по определенным причинам - пока буду обрабатывать в отдельном треде новое сообщение может туда записать и порядок прихода данных сломается.

Вариант 1
Сообщения будут накапливаться в очередь, потом обработаются.
Вариант 2
Обработчик пропустит часть сообщений.

Какой вариант правильный?

С ув.
...
Рейтинг: 0 / 0
30.10.2018, 19:14
    #39725225
Лысый дядька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 3.x websocket client
nuts577Добрый день,

Не получается нагуглить как работает websocket-client. Предположим мы подсоединились к серверу и получаем от него сообщение, складываем в массив. Некоторые сообщения могут потребовать длительной (до пары секунд) обработки перед добавлением. Выносить в отдельный тред не хочу по определенным причинам - пока буду обрабатывать в отдельном треде новое сообщение может туда записать и порядок прихода данных сломается.

Вариант 1
Сообщения будут накапливаться в очередь, потом обработаются.
Вариант 2
Обработчик пропустит часть сообщений.

Какой вариант правильный?

С ув.


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

автор Выносить в отдельный тред

Вот тут все умерло. Не надо ничего выносить в отдельный тред (без нужды). Надо делать свои запросы к ресурсам асинхронными и код писать соответствующим образом. Асинхронный код подразумевает, что ты отправив запрос на внешний ресурс не "ждешь" ответа, а пока оно там на внешнем ресурсе крутится, можно выполнять какие-то свои задачи. Синхронный код, ждет ответа на каждый запрос и блокирует весь поток вообще пока не придет ответ от блокирующего сервиса.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python 3.x websocket client / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]