0

nodejitsu でホストされ、常に変更されている cloudant db から継続的に変更を取得する小さなノード サーバーを作成しています。

私はfollow モジュールを使用しています。これは、興味深いcouchdb changes fetcherを提供します。私が抱えている問題は、サーバーを再起動せずに動作させたいということです。つまり、絶え間なく、絶え間なく働くことです。しかし、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」モジュールに関係しているのではないかと思いますが (つまりバグです)、よくわかりません。

前もって感謝します!!

ブルーノ。

4

0 に答える 0