我正在为生产设置一个 Eve 实例,想知道 Eve 的“首选生产设置”是什么——如果有的话。 uWSGI 似乎工作得很好。 Gunicorn 与标准 Flask 配合得很好——但对于 Eve 来说并不那么容易,因为 Eve 隐式导入了“settings.py”。 建议或建议?
请您参考如下方法:
Tornado通常在 Eve 和 Flask 中很受欢迎。因为它是非阻塞的并且使用 epoll,所以它可以同时处理数千个常设连接,这意味着它非常适合实时 Web 服务。将此服务与 Flask 集成非常简单 (source)。
假设您有用于启动 REST API 的普通 run.py
脚本:
from eve import Eve
app = Eve()
# custom stuff here
if __name__ == '__main__':
app.run()
然后你可以有一个像这样的 run-production.py
脚本:
from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from run import app
http_server = HTTPServer(WSGIContainer(app))
http_server.listen(5000)
IOLoop.instance().start()
然后您可以在调试时启动 run.py
,在上线时启动 run-production.py
。