gpt4 book ai didi

api - 为什么要使用异步/非阻塞框架构建 API?

转载 作者:行者123 更新时间:2023-12-03 21:44:57 25 4
gpt4 key购买 nike

我一直在研究 Play Framework作为帮助我构建简单 API 的可能候选人。但是,Django Rest Framework (DRF)似乎也是一个非常强大的内容。

据我所知,DRF 并不像 Play Framework 那样宣传自己是一个异步(或非阻塞)框架,但我对这是否重要感兴趣。我一直在想的情况是通过 Mandrill 向用户发送电子邮件——我不希望我的 API 陷入等待 Mandrill API 告诉它是否发送了电子邮件。

因此,我认为这个问题可以总结如下:从客户端的角度来看,我使用异步/非阻塞框架(如 Play over DRF)构建 API 是否会带来好处,还是我错过了重点?

最佳答案

我是 Django REST 框架的贡献者(和用户),所以我的观点偏向于此。

Django REST 框架建立在 Django 之上,Django 是一个用于 Web 应用程序的同步框架。如果您已经在使用 Django 之类的同步框架,那么拥有同步 API 就不是问题了。

现在,仅仅因为它是同步的,并不意味着一次只能处理一个请求。大多数处理 Django 应用程序的 Web 服务器 can handle multiple requests ,有些主题甚至做到了somewhat asynchronously across multiple threads .通常这实际上不是问题,因为您的 Web 服务器通常可以处理许多并发请求,即使其中一些是阻塞的。当你有很长的阻塞调用时,你通常不希望在 API 中完成 - 你应该将它委托(delegate)给后台工作人员,如 CeleryResque .

这不仅仅针对 Django,许多相同的原则也适用于其他同步框架,例如 Rails 和 ASP.NET MVC。如果您有长时间运行的请求,您通常应该将工作委派给其他进程,而不是搁置请求。通常使用 202 响应代码 for these cases .

现在,这并不一定意味着异步框架毫无用处。在 Node.js 等运行时,大多数框架 handle requests asynchronously .在这些语言中使用同步框架没有意义,因此大多数库都是异步构建的。

您选择什么很大程度上取决于您已经在使用的工具。

关于api - 为什么要使用异步/非阻塞框架构建 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27881706/

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