Web API-在汇总调用时处理长时间运行的调用

时间:2018-09-23 07:04:48

标签: asp.net-web-api

我有一个Web api项目,可作为其他Mobile客户端的GateWay。当移动客户端调用此网关时,它会内部调用由另一个项目托管的现有服务,并将结果汇​​总并返回给客户端。我最近遇到一种情况,我的网关在内部进行3个呼叫,前2个正在快速返回数据,但是第3个呼叫占用大量时间,我想知道处理这种情况的最佳方法。

1 个答案:

答案 0 :(得分:0)

确保API操作方法的返回类型为async Task<YourModelDataType>。 例如,假设您有一个HomeController控制器,如下所示:

public class HomeController : ApiController { public async Task<YourModelDataType> Index() { return new YourModelDataType() { Property1 = await ApiService1.GetData(), Property2 = await ApiService2.GetData(), Property3 = await ApiService3.GetData(), }; } } 确保等待对其他API项目的调用。这样可以提高服务器端的可扩展性。也就是说,服务器资源可自由等待其他API服务的响应,同时满足其他请求。