我有一个NodeJS应用程序,它从代码中的不同位置发送HTTP get请求,有些甚至是依赖的(发送请求,等待回复,处理它并基于发送另一个请求的结果).我需要限制请求的速率(例如,每小时10个请求).
我考虑将请求排队,然后在某个中心点以受控方式释放它们,但却陷入了如何对回调函数及其相关参数进行排队的问题.
很高兴听到建议如何以最小的重组为应用程序来应对这种情况.
谢谢
我想你已经回答了你的问题.可以限制请求的中央队列是可行的方法.这里唯一的问题是队列必须具有请求的完整信息和应该使用的回调.我会在一个QueueableRequest看起来像这样的对象中抽象它:
var QueueableRequest = function(url, params, httpMethod, success, failure){
this.url = url;
this.params = params;
...
}
//Then you can queue your request with
queue.add(new QueueableRequest({
"api.test.com",
{"test": 1},
"GET",
function(data){ console.log('success');},
function(err){ console.log('error');}
}));
Run Code Online (Sandbox Code Playgroud)
当然这只是示例代码,可能更漂亮,但我希望你能得到它.
| 归档时间: |
|
| 查看次数: |
14599 次 |
| 最近记录: |