c# - 在 C# 中发送 http 请求时,如何设置计时器或等待?
问题描述
我将以编程方式向 api 发送超过 100 万个请求。看起来每 200 个请求我都会受到限制,需要等待 5 分钟才能再发送 200 个请求。如何通过 c# 代码执行此操作?我看过计时器,但我很困惑逻辑是如何工作的。有人可以帮我吗?
太感谢了!
解决方案
正如 Ron Beyer 指出的那样,数学对你不利。如果您每 200 个请求就受到限制,则需要 5000 个周期才能完成全部 100 万个请求。Wich 至少等于 25000 分钟,或 416 小时,或 17.36 天。这是最短时间,假设请求本身不需要任何时间。
我想这是保存的说,API 提供者不希望你这样做。虽然您可以限制您的请求以进行匹配,但这并不重要,因为17 天对于任何应用程序来说都可能有点长。您需要一个数据库表来存储请求的总量以及您设法处理这 100 万个请求的程度。
这样做的唯一方法是,如果有一个允许批量请求的 API 调用。有了网络开销,很明显,对 200 个项目的 1 个请求将不会像每个对 1 个项目的 200 个请求一样长。但为此,您必须与 API 提供者交谈。
推荐阅读
- jenkins - 如何将静默期设置为其他 Jenkins 参数?
- sap - 试图找出哪些物料分配给了哪个采购组
- laravel - 对laravel关系的怀疑
- django - 一次又一次地在 Django 中调用视图
- r - R Keras:LSTM 模型拟合问题 - 输出数组不匹配
- c# - 有没有办法将 JsonSerializerSettings 添加到自定义 JsonConverter
- wpf - 做出选择后重置组合框选择
- html - Xpath 适用于 Chrome 开发工具,但不适用于 RSelenium
- json - 调用office 365的日历api时出现401未授权
- r - plm 包中的 pgmm 函数错误:“矩阵的行数必须匹配”