我正在编写一个托管在 nodejitsu 中的小型节点服务器,它从一直在修改的 cloudant 数据库中不断获取更改。
我正在使用以下模块,它提供了一个有趣的 couchdb 更改获取器。我遇到的问题是我希望服务器无需重新启动即可工作。我的意思是,连续工作,不间断。但我发现有时我的 nodejitsu 服务器会重新启动。例如,我昨天下午 3:30 让它工作,今天早上 8 点左右重新启动。我发现当跟随模块触发超时事件时,服务器会“死亡”。我想我应该处理这个事件,但我不知道如何处理。我认为,此超时与来自 cloudant 的心跳有关。
我写过类似的东西:
feed.on('timeout', function (err){
console.log("Timeout!");
});
并且以这种方式获取更改:
var feed = new follow.Feed({db:"https://"+user+":"+password+"@"+host+"/"+dbSource,since:"now",filter:"sync/notSynchronizedFilter"});
feed.on('change',function (change){
//...do stuff
});
编辑:有一件有趣的事情。触发超时事件后,立即发生错误:
events.js:72
throw er; // Unhandled 'error' event
^
Error: getaddrinfo ENOTFOUND
at errnoException (dns.js:37:11)
at Object.onanswer [as oncomplete] (dns.js:124:16)
编辑2:更多信息。
我终于把心跳改成了 5 分钟,让超时变得非常困难。这种解决了我的特殊问题,但没有回答原来的问题。关于错误,我认为它可能与“跟随”模块有关(我的意思是一个错误),但我不确定。
提前致谢!!
布鲁诺。