- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望在发出 http 请求时设置延迟,以避免超过外部服务器的速率限制。
users.forEach(async function(user) {
await rate_check()
make_http_request()
})
我需要帮助以避免忙等待的方式实现 rate_check 函数。此刻正忙着等待如下
async function rate_check() {
if(rate_counter < rate_limit)
rate_counter += 1
else {
// Busy wait
while(new Date() - rate_0_time < 1000) {}
rate_counter = 1
time_delta = new Date() - rate_0_time
rate_1_time = new Date()
}
}
await new Promise(resolve => { setTimeout(resolve, 2000)})
不起作用,因为它只会导致 rate_check 休眠,但匿名函数会继续发出请求。
任何速率检查代码都必须在 rate_check 函数中完成,而不是在 http 请求发生的函数中完成,因为请求发生在多个异步函数之间,并且它们正在向同一服务器发出请求。
我愿意接受任何其他建议以及重构,只要它避免嵌套回调或第三方依赖
最佳答案
您可以使用 lodash throttle
函数 https://lodash.com/docs/4.17.15#throttle环绕你的副作用函数。它最多每个间隔调用一次并记住最后返回的结果(因此您可能希望返回数据而不是有状态的对象,例如 http 主体)。
关于javascript - 速率限制/ sleep /延迟nodejs而不忙等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63901248/
根据https://developers.google.com/google-apps/calendar/v3/reference/freebusy/query处的文档要执行空闲/忙碌查询,您必须在正
我在启动 Apache 后使用 XAMPP 1.7.7 我收到此警报: Busy... Apache started [Port 80] 我已经打开了 httpd.conf 文件,并将端口号更改为 8
我有端口问题。 每当我启动 Apache 时,它都会给我这个错误: Busy - Apache Started [port 80] 当我启动 Mysql 时出现以下错误: Busy - ERROR
当我运行我的代码时,我总是得到后台工作人员很忙。有帮助吗? struct FtpSetting { public string Server { get; set
在我们的 Android 和 iOS MVVMCross 应用程序中,我们偶尔会遇到 SQLiteException: busy 异常。 给定下面的代码,我们有几个存储库,每个存储库都构造一个下面的实
每次运行解决方案(20 projs)时,我都会收到此错误。我尝试禁用 UI 选项、resharper、删除未使用的扩展等,但仍然无法通过此错误。 我使用的是 VS 2015 Update 2 Ente
我正在使用这个插件 https://github.com/mozilla/rust-android-gradle ,这需要我添加 tasks.whenTaskAdded { task -> i
我是一名优秀的程序员,十分优秀!