似乎有很多关于如何做到这一点的讨论,但我没有找到任何具体的例子。我的节点应用程序正在访问将要传递到数据库的RESTful API。我最初的解决方案就是这个
function getRecord() {
var req = https.request(options, function(res){
res.on('data', function(data) {
var record = JSON.parse(data.toString('utf-8'));
//do some database things then do it all over
getRecord();
});
});
req.write(queryString);
req.end();
}
这实现了我想要的。我将继续从API中获取新记录,但我不确定这是否是做我想要的最佳方法。
答案 0 :(得分:1)
一种(特别有利的)替代方案是使用消息服务器(如RabbitMQ)切换到总线体系结构。
您需要控制API或拥有可以使用。注册回调的API。
长轮询是一种可以很快降低性能和膨胀日志的策略。事件驱动的方法,如我上面列出的,如果有可能的话,是非常优选的。并且,与长轮询不同,事件驱动策略不会引入任何延迟。因此,如果延迟是一个问题,您轮询的频率越高,它就越会降低性能和膨胀日志。