1. jan - 05 Июля, 2018 - 12:02:27 - перейти к сообщению
Добрый день! Настроил websocket сервер по аналогии с примерами в статьях, где в бесконечном цикле идет добавление обработка новых соединений. Но теперь мне на каждый запрос клиента необходимо в течение 5 минут делать периодические запросы в БД и только после этого отдавать результат клиенту. Из-за того, что запросы в цикле обрабатываются друг за другом, все новые запросы встают в очередь за каждым таким долгим запросом. Каким методом можно правильнее всего реализовать распараллеливание обработку этих запросов? Примеры простых чатов мне не помогли, т.к. там обычно задается конечное число участников одного чата, а здесь каждый клиент не связан с другим и их количество на данный момент всегда неизвестно.
2. andrewkard - 05 Июля, 2018 - 14:42:39 - перейти к сообщению
jan пишет:
Но теперь мне на каждый запрос клиента необходимо в течение 5 минут делать периодические запросы в БД
такое время ожидания нереальное, сдается клиенты могут не дождаться просто...
Оптимизируйте работу с БД
3. jan - 05 Июля, 2018 - 14:50:58 - перейти к сообщению
andrewkard пишет:
такое время ожидания нереальное, сдается клиенты могут не дождаться просто...
Оптимизируйте работу с БД
jan пишет:
Но теперь мне на каждый запрос клиента необходимо в течение 5 минут делать периодические запросы в БД
такое время ожидания нереальное, сдается клиенты могут не дождаться просто...
Оптимизируйте работу с БД
Наоборот, это ожидание сервера в ответ на действия клиента. Оптимизировать нечего в данном случае, на исполнение цикла специально выставляется 5 минут (чтобы клиент успел отправить СМС на сервер).