【发布时间】:2019-04-12 02:11:18
【问题描述】:
因此,我刚刚被要求将我的 .Net Async 代码对我们正在调用的特定 API 的调用次数限制为 5/秒。
我们的异步调用示例
var mylist = new List<Task<ApplicantDetails>>();
foreach (JToken result in results)
{
mylist.Add(getCandidateResumeAsync(result));
}
await Task.WhenAll(mylist);
以及对getCandidateResumeAsync的API insode的实际调用
var candiateAttachmentsResponse = await Client.GetAsync(model["candidate"]["links"]["self"] + "/attachments");
我只需要每秒执行 5 次 getCandidateResumeAsync 函数。
有什么想法可以解决这个问题吗?
【问题讨论】:
-
实现这一目标的方法有很多很多。您是在寻找快速而肮脏的东西,还是可重复使用和可调整的东西?这是代码中唯一需要进行这种限制的地方,还是需要以这种方式限制对该服务操作(或者可能是该服务或任何服务)的所有调用?
-
我对该 API 进行了多次调用,并且所有调用都必须限制为 5/秒。快速和肮脏是可以接受的,因为目前我们的产品在我们实施之前处于离线状态。
标签: c# .net asp.net-mvc asynchronous