【发布时间】:2014-08-07 07:37:08
【问题描述】:
我有一个需要部署在 WSGI 容器中的 Django 应用程序。我可以选择像 TwistedWeb 这样的事件驱动应用服务器,也可以选择像 uWSGI 这样的流程驱动服务器。我完全理解事件驱动和进程驱动服务器之间的区别,并且我知道 Django 框架本质上是阻塞的。
我遇到了 TwistedWeb,它可以让我们以简单的方式运行 WSGI 应用程序。
我的问题如下:
1) 我会通过运行 Twisted 而不是 uWSGI 来获得什么,因为 Django 在本质上是阻塞的。 TwistedWeb 与标准的 twisted 库不同吗?我知道人们在需要异步支持时也使用 Django 运行 Twisted,以进行前聊天以及正常功能,但他们仍然只想拥有一个应用程序。我没有这样的用例,对我来说它只是一个网站。
2) TwistedWeb 上的性能会更差,因为它只是一个进程,而且我的请求会阻塞,因为 Django 本质上是同步的?或者 TwistedWeb 运行类似 uWSGI 的东西,它预先启动多个进程并在这些进程之间以循环方式分发请求?如果是,那么 TwistedWeb 是否比 uWSGI 更好?
3) 除了 WSGI 之外,是否还有其他协议可以将 Twisted 与 Django 集成并仍然给我异步行为(在这里试试我的运气:))
【问题讨论】:
标签: python django twisted event-driven twisted.web