Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Длинная обработка на websocket сервере
Форумы портала PHP.SU » » Вопросы новичков » Длинная обработка на websocket сервере

Страниц (1): [1]
 

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 минут (чтобы клиент успел отправить СМС на сервер).

 

Powered by ExBB FM 1.0 RC1