首页 > 解决方案 > 在 C# 中发送 http 请求时,如何设置计时器或等待?

问题描述

我将以编程方式向 api 发送超过 100 万个请求。看起来每 200 个请求我都会受到限制,需要等待 5 分钟才能再发送 200 个请求。如何通过 c# 代码执行此操作?我看过计时器,但我很困惑逻辑是如何工作的。有人可以帮我吗?

太感谢了!

标签: c#timerwaitsleepthrottling

解决方案


正如 Ron Beyer 指出的那样,数学对你不利。如果您每 200 个请求就受到限制,则需要 5000 个周期才能完成全部 100 万个请求。Wich 至少等于 25000 分钟,或 416 小时,或 17.36 天。这是最短时间,假设请求本身不需要任何时间。

我想这是保存的说,API 提供者不希望你这样做。虽然您可以限制您的请求以进行匹配,但这并不重要,因为17 天对于任何应用程序来说都可能有点长。您需要一个数据库表来存储请求的总量以及您设法处理这 100 万个请求的程度。

这样做的唯一方法是,如果有一个允许批量请求的 API 调用。有了网络开销,很明显,对 200 个项目的 1 个请求将不会像每个对 1 个项目的 200 个请求一样长。但为此,您必须与 API 提供者交谈。


推荐阅读