couchdb跟踪更改超时

时间:2013-12-13 13:45:48

标签: node.js couchdb cloudant nodejitsu

我正在编写一个托管在nodejitsu中的小型节点服务器,它可以从一直在修改的云端数据库中连续获取更改。

我正在使用follow module,它提供了一个有趣的couchdb更改抓取器。我遇到的问题是我希望服务器无需重启即可运行。我的意思是,不停地工作。但我发现有时我的nodejitsu服务器重新启动。例如,我昨天下午3:30离开了它,今天早上8点左右重新启动。我发现服务器的“死亡”发生在follow模块触发超时事件时。我想我应该处理这个事件,但我不知道如何。我认为,这个超时与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分钟,使得超时非常困难。这种解决了我的特殊问题,但没有回答原来的问题。关于错误,我认为它可能与'follow'模块(我的意思是一个bug)有关,但我不确定。

提前致谢!!

布鲁诺。

0 个答案:

没有答案