1
我想将websocket功能添加到现有应用程序。该应用程序的现有结构是指定eventlet wsgi服务器的进程数
在/server/__init__.py
:
from connexion import App
...
connexion_app = App(__name__, specification_dir='swagger/') # Create Connexion App
app = connexion_app.app # Configure Flask Application
...
connexion_app.add_api('swagger.yaml', swagger_ui=True) # Initialize Connexion api
在startserver.py
:
from server import connexion_app
connexion_app.run(
processes=8,
debug=True
)
就这样,我能指定的进程数。有一些长期运行的任务需要尽可能多的进程。
我已经修改了应用程序以包含websocket功能,如下所示。这似乎是我只有一个可用的过程。一旦应用程序尝试运行其中一个长时间运行的进程,所有API调用都会挂起。此外,如果长期runnign过程失败,该应用程序是停留在悬挂的状态
在/server/__init__.py
:
from connexion import App
import socketio
...
connexion_app = App(__name__, specification_dir='swagger/') # Create Connexion App
sio = socketio.Server() # Create SocketIO for websockets
app = connexion_app.app # Configure Flask Application
...
connexion_app.add_api('swagger.yaml', swagger_ui=True) # Initialize Connexion api
在startserver.py
:
import socketio
import eventlet
from server import sio
from server import app
myapp = socketio.Middleware(sio, app)
eventlet.wsgi.server(eventlet.listen(('', 5000)), myapp)
缺少什么我在这里?
(边注:如果您有可用,以便更好地理解Flask
对象的庞然大物任何资源,请点我给他们!)