Django не работает в приложении ASGI во втором/отдельном процессе

У меня есть Django и FastAPI на process#1, и они работают в функциях Sync и Async без проблем. Я запускаю приложение SocketIO на process#2 с помощью multiprocessing. ProcessusingAsyncServerandASGIApp. The problem is that Django works with Sync functions like get()orcreate(), but if we use aget()oracreate()` процесс пропадает и исчезает. Остальная часть строки не запускается без ошибки.

self.sio = socketio.AsyncServer(
    async_mode="aiohttp",
    cors_allowed_origins=self.socket_config.cors_allowed_origins,
    always_connect=self.socket_config.always_connect,
    logger=self.logger if self.socket_config.logger else False,
    engineio_logger=self.logger if self.socket_config.engineio_logger else False,
)
self.socket_application = socketio.ASGIApp(self.sio, socketio_path=self.socket_config.socketio_path)

и запустите его с помощью uvicorn с pro

multiprocessing.Process(
    target=uvicorn.run,
    kwargs={
        "app": "0.0.0.0",
        "host": 8002,
        "port": int(service_config.SERVICE_PORT),
    }, 
    daemon=True
).start()

Я пытался добавить get_asgi_application() в other_asgi_app из socketio.ASGIApp, но ничего не изменилось. Я думаю, что проблема не в настройках Django с разрешениями async, а между ASGIApp и Django. Когда он зарегистрировал self.socket_application из ASGIApp, появилось кое-что интересное, ...DjangoDBProcessRemove object ....

Буду рад любой помощи.

Обновление: Если я запускаю приложение SocketIO в основном процессе, оно работает просто отлично. Так я и сделал. SocketIO в основном процессе и FastAPI во втором с мультипроцессом, На этот раз FastAPI столкнулся с этой проблемой.

Вернуться на верх