Я разрабатываю сервер FASTAPI WebSocket, развернутый с использованием Ray Serval для обработки нескольких соединений WebSocket. Приложение предназначено для обеспечения общения в реальном времени с одновременными пользователями до 50 тысяч. Однако, после интеграции Ray Served для многопроцестрой, я сталкиваюсь с проблемой: < /p>
Приложение работает, как и ожидалось для первых 5 пользователей.
Когда 6 -й пользователь подключается, я получаю Следующая ошибка: < /p>
ERROR: ASGI callable returned without sending handshake.
(ProxyActor pid=1264842) Task exception was never retrieved
(ProxyActor pid=1264842) future:
(ProxyActor pid=1264842) Traceback (most recent call last):
(ProxyActor pid=1264842) File "/home/user/lib/python3.11/site-packages/ray/serve/_private/proxy_response_generator.py", line 116, in _await_response_anext
(ProxyActor pid=1264842) return await self._response.__anext__()
(ProxyActor pid=1264842) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(ProxyActor pid=1264842) File "/home/user/lib/python3.11/site-packages/ray/serve/handle.py", line 559, in __anext__
(ProxyActor pid=1264842) replica_result = await self._fetch_future_result_async()
(ProxyActor pid=1264842) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(ProxyActor pid=1264842) File "/home/user/lib/python3.11/site-packages/ray/serve/handle.py", line 280, in _fetch_future_result_async
(ProxyActor pid=1264842) raise RequestCancelledError(self.request_id) from None
(ProxyActor pid=1264842) ray.serve.exceptions.RequestCancelledError: Request e85273c8-f582-49a4-8dbe-0a86b464ad90 was cancelled.
(ProxyActor pid=1264842) Task exception was never retrieved
(ProxyActor pid=1264842) future:
(ProxyActor pid=1264842) Traceback (most recent call last):
(ProxyActor pid=1264842) File "/home/user/lib/python3.11/site-packages/uvicorn/protocols/websockets/websockets_impl.py", line 258, in run_asgi
(ProxyActor pid=1264842) self.send_500_response()
(ProxyActor pid=1264842) File "/home/user/lib/python3.11/site-packages/uvicorn/protocols/websockets/websockets_impl.py", line 222, in send_500_response
(ProxyActor pid=1264842) self.transport.write(b"".join(content))
(ProxyActor pid=1264842) File "uvloop/handles/stream.pyx", line 678, in uvloop.loop.UVStream.write
(ProxyActor pid=1264842) File "uvloop/handles/handle.pyx", line 159, in uvloop.loop.UVHandle._ensure_alive
(ProxyActor pid=1264842) RuntimeError: unable to perform operation on ; the handler is closed
< /code>
код: основное приложение с Ray Derailment Deployment: < /p>
from fastapi import FastAPI, WebSocket
from ray import serve
app = FastAPI()
@serve.deployment
@serve.ingress(app)
class FastAPIDeployment:
def __init__(self):
self.connections = {}
@app.websocket("/ws")
async def websocket_endpoint(self, websocket: WebSocket):
await websocket.accept()
# Connection handling logic
< /code>
Websocket Manager:
A Redis на основе WebSocket Manager для отслеживания соединений. Подавать или FASTAPI, которые мне не хватает?
Как я могу отлаживать и разрешить «ASGI Callable», возвращаемый без отправки рукопожатия ». Государство? < /p>
Что я пробовал: < /p>
Проверенное подключение Redis и логика управления активным веб -сокетом. Увеличение http_options in serv.start () :
serve.start(http_options={
"host": "0.0.0.0",
"port": 8000,
"keep_alive_timeout": 60,
"max_keep_alive_requests": 10
})
Подробнее здесь: https://stackoverflow.com/questions/793 ... g-handshak
Рэй подают развертывание WebSocket: «ASGI Callable возвращается без отправки рукопожатия». ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Websocket — ошибка во время рукопожатия WebSocket: неожиданный код ответа: 404
Anonymous » » в форуме Php - 0 Ответы
- 30 Просмотры
-
Последнее сообщение Anonymous
-