APIを使用してサードパーティのWebサイトからニュースフィードを取得するためのこのコードがあります。5秒ごとに実行し、発生する可能性のあるニューストランザクションをプルするように設定されています。問題は、新しいトランザクションが発生しない場合にあるようです。
process.on('uncaught exception'、function(error){console.log( "hmph")})を追加することにより、cronジョブは5秒後に続行できるため、そのままにしておきたくなりました。ただし、console.log( "hmph")をに追加したので、混乱しました。
初めて、コンソールはhmphを書き込みます。5秒後にそれはhmphhmphを書きます
等々。私は何かが欠けているに違いないことを知っていますが、それが何であるかはよくわかりません。elseステートメントでrequest.end()を実行しようとしましたが、それでもエラーが発生します。
process.on('uncaught ...')がないと、スローされるエラーは次のようになります。
events.js:71引数をスローします[1]; //未処理の「エラー」イベント^エラー:TCP.onread(net.js:403:27)のSocket.socketOnData(http.js:1367:20)でエラーを解析します
proccess.on('uncaught ...')を使用すると、console.log(error)は次のようになります。
{[エラー:解析エラー] bytesParsed:161、コード:'HPE_INVALID_CONSTANT'}
このエラーを適切に処理するにはどうすればよいですか?
省略コード:
var job = new cronJob('*/5 * * * * *', function(){
var request = http.get({
host: 'www.example.com',
path: '/news_feed?apicode=myapicode',
port: 80,
headers: { 'accept-encoding': 'gzip' }
})
request.on('response', function(response){
if (response.statusCode == 200){
// gunzip response, save response to mongodb
}
else
{
// here is where the error is occuring
process.on('uncaughtException',function(error){
console.log(error);
console.log("hmph");
}
});
}, null, true);