Python 使用ASGI代替WSGI的缺点
一般来说,在Django中使用ASGI而不是WSGI来处理HTTP请求有什么明显的缺点 我知道ASGI用于异步任务,但它也可以通过Python 使用ASGI代替WSGI的缺点,python,django,django-channels,Python,Django,Django Channels,一般来说,在Django中使用ASGI而不是WSGI来处理HTTP请求有什么明显的缺点 我知道ASGI用于异步任务,但它也可以通过HTTP.*通道处理同步HTTP请求。它是否比普通WSGI慢,或者与WSGI相比是否有任何不受支持的特性 另外,为了在同一个项目中同时提供RESTAPI和websocket处理,您更喜欢哪种方式?为什么 用于REST的WSGI+用于不同服务器实例中websocket的ASGI REST的WSGI+同一机器中websocket的ASGI 两者的ASGI 我没有做任何基准
HTTP.*
通道处理同步HTTP请求。它是否比普通WSGI慢,或者与WSGI相比是否有任何不受支持的特性
另外,为了在同一个项目中同时提供RESTAPI和websocket处理,您更喜欢哪种方式?为什么
我没有做任何基准测试,但在几个项目中同时使用了WSGI和ASGI,并且没有看到它们的性能之间有足够的差异,因此如果Django WSGI的性能对您来说是可以接受的,那么ASGI也可以工作
对于REST+websockets API,我使用了ASGI来实现这两个功能。如果您的项目中启用了ASGI,那么就没有理由使用WSGI(WSGI比ASGI更有效)。我认为您会发现一个主要的缺点是ASGI服务器更新,因此测试更少,可能功能更少,数量更少,并且背后可能有一个更小的社区。然而,我使用ASGI服务器(Daphne)处理所有事情,并且感觉websockets提供了如此多的用户体验,以至于所有事情最终都将转移到ASGI 能够在代码中使用asyncio是web编程的一个主要好处。不必一个接一个地运行10个查询并等待每个查询返回,您可以同时运行10个查询,同时命中缓存并在单个线程上同时发出HTTP请求 具有良好的ASGI优势