gpt4 book ai didi

asynchronous - Web API 2 - 所有 REST 请求都是异步的吗?

转载 作者:行者123 更新时间:2023-12-01 01:06:05 25 4
gpt4 key购买 nike

我需要做任何事情来使所有请求异步还是自动处理?

我进行了一些测试,似乎每个请求都来自它自己的线程,但我认为最好问一下,因为我可能测试错了。

更新: (我有一个不完全解释的坏习惯 - 抱歉)这是我的担忧。客户端浏览器向我的服务器发出 REST 请求 http://data.domain/com/employee_database/?query=state:Colorado .这涉及到 Controller 中的适当方法。该方法查询数据库并返回一个对象,然后将其转换为 JSON 结构并返回给调用应用程序。

现在假设 10,000 个客户端都对同一台服务器进行了类似的查询。所以我同时收到 10,000 个请求。我的 Controller 方法会在 10,000 个不同的线程中同时调用吗?还是必须在调用第二个请求之前返回第一个请求?

我不是在询问具有异步组件的处理程序方法中的代码。就我而言,请求变成了单个 SQL 查询,因此代码没有任何可以异步处理的内容。在我获得请求的数据之前,我无法从该方法返回。

最佳答案

我认为您应该在您的情况下使用异步 IO/操作,例如数据库调用。是的,在 Web Api 中,每个请求都有自己的线程,但是如果有很多连续的请求,线程可能会耗尽。线程也使用内存,因此如果您的 api 受到太多请求的影响,它可能会给您的系统带来压力。

使用异步而不是同步的好处是您可以明智地使用系统资源。在同步实现中等待数据库调用完成时不会阻塞线程,异步将释放线程以处理更多请求或分配进程需要线程的任何内容。一旦 IO(数据库)调用完成,另一个线程将从那里获取它并继续执行。如果您的 IO 操作需要更长的时间来完成,异步还会使您的 api 运行得更快。

关于asynchronous - Web API 2 - 所有 REST 请求都是异步的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18658003/

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