我正在为生产设置一个Eve实例,并想知道什么是Eve的“首选生产设置” - 如果有这样的话。 uWSGI似乎很好用。 Gunicorn适用于标准的Flask - 但对于Eve来说并不那么容易,因为Eve隐含导入了“settings.py”。 建议或推荐?
答案 0 :(得分:6)
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
。