使用mod_wsgi托管的flask应用程序作为外部进程发送到使用eventlet worker在gunicorn上运行的Flask-SocketIO服务器

问题描述 投票:0回答:1

我在弹性豆茎上部署了烧瓶应用程序。它是一个REST api,主要用于数据库CRUD操作,而不是繁重的计算。提供的默认配置是Apache + mod_wsgi,它不支持Flask-SocketIO。虽然我设法用nginx + gunicorn + eventlet设置替换它。它工作得很好但我有时会遇到一些部署问题。

使用默认的mod_wsgi设置并使用它来发送数据,如https://flask-socketio.readthedocs.io/en/latest/#emitting-from-an-external-process和运行flask-socketio服务器共享相同的Redis消息队列,我能够从mod_wsgi实例发出数据,它似乎运行良好。

任何人都可以告诉我Flask-SocketIO是否有任何问题与这样的配置或gunicorn + nginx方式适合更好?如果我面临当前配置的任何进一步问题,我会转向它。

python-3.x flask mod-wsgi flask-socketio
1个回答
0
投票

没有问题,但也有缺点。

外部进程无法接收事件,也无法接收它们发出的事件的回调。因此,请确保这不会成为一个限制。

另一个选择是将mod_wsgi服务器作为Socket.IO客户端而不是外部进程连接到Flask-SocketIO服务器。如果您作为客户端连接,则不需要使用Redis队列,则通过长轮询和/或WebSocket完成连接。

© www.soinside.com 2019 - 2024. All rights reserved.