gpt4 book ai didi

python - Flask替代品实现真正的多线程?

转载 作者:太空狗 更新时间:2023-10-29 17:53:41 28 4
gpt4 key购买 nike

我使用 Flask 微框架实现了一个多线程网络服务器。基本上,我的服务器有一个任务队列和一个线程池。因此,它可以处理多个请求。由于 Flask 是用 Python 实现的,而 Python 线程并不是真正并发的,因此我的 Web 应用程序有点滞后。

是否有 Flask 的替代方案来克服多线程问题?

最佳答案

我遇到了这个问题,我有点失望没有人指出 flask 是如何部署的(而且大多数 python 网络应用程序意味着要部署)。请参阅:http://flask.pocoo.org/docs/deploying/#deployment

我首选的部署选项是 super 简单的 Tornado它在 Linux Windows 上同样运行良好(如果我将它与现有网站一起部署,或者甚至将其作为现有站点的一部分进行混合部署,我通常使用 IIS 应用程序请求路由 [ARR] 作为反向 Tornado 的代理)。我还在两者上都使用了 gevent,并取得了巨大的成功。

Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed. Because it is non-blocking and uses epoll, it can handle thousands of simultaneous standing connections, which means it is ideal for real-time web services. Integrating this service with Flask is straightforward:

因此,如果您的 Flask 应用程序在 yourapplication.py 中,您可以创建另一个名为 tornado_web.py 的应用程序并使用它来为您的应用程序提供服务,如下所示:

from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from yourapplication import app

http_server = HTTPServer(WSGIContainer(app))
http_server.listen(5000)
IOLoop.instance().start()

通过:http://flask.pocoo.org/docs/deploying/wsgi-standalone/#tornado

关于python - Flask替代品实现真正的多线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18525856/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com