【发布时间】:2019-01-26 12:30:17
【问题描述】:
我有方法可以向某些 3rd 方 API 发出请求并从它返回响应。 由于这个 API 每 1 分钟只允许 50 次调用,我想限制我对这个 API 的请求。
目前我正在考虑使用 Polly 并在我的代码中添加类似包装器的东西
var policy = Policy.Handle<HttpRequestException>()
.WaitAndRetryForever(retryAttempt => TimeSpan.FromMinutes(1));
var response = await policy.ExecuteAsync(async () => await DoApiCallAsync()
.ConfigureAwait(false));
return response;
但也许这里有更好的方法。
【问题讨论】:
-
您当前的代码有效吗?如果是这样,codereview.stackexchange.com 可能更合适。如果它不起作用,您需要明确说明什么不起作用。
-
一般来说:
WaitAndRetryForever听起来很危险。 -
@Stefan,嗯,是的,也许在这里至少 3 次就够了...
标签: c# api httprequest throttling