私のコードのヘルスチェックを書こうとしています(このチェックでは、カッサンドラDBとカフカとのやり取りが含まれていました)。Promisesを含むget関数に正しいコールバックを書き込む方法は?
これは私が書いたコードです:
// health-check
app.get('/stats/health', function(req, res, next) {
Promise.all([cassandraPromise, kafkaPromise])
.then(console.log("Everything is OK"),
console.log("FAILED!"));
});
var cassandraPromise = new Promise(function(resolve, reject){
*****.client.state.cassandraClient.execute('SELECT vehicle_id FROM vehicles.vehicles LIMIT 1', function(err) {
if (err) {
console.log ('Health Check for Cassandra failed');
//res.write("Cassandra health check FAILED\n");
reject(err);
} else {
console.log('Health Check for Cassandra passed\n');
resolve(200);
}
});
});
var kafkaPromise = new Promise(function(resolve,reject) {
stats.kafkaService.producer.send([{topic: 'health_check', messages: 'health check message'}], function(err,data) {
if (err) {
//res.write("Health Check for Kafka failed\n");
console.log("Health Check for Kafka failed");
reject(err);
} else {
console.log("Health Check for Kafka passed");
resolve(200);
}
});
});
は、エラーメッセージは次のとおりです。
'queryFetchSizeは' が定義されていませんでした。デフォルトの使用: '25000'
'socketReadTimeout'が定義されていません。カフカのプロデューサーに「30000」
エラー:{「メッセージ」:「ブローカーを見つけることができませんでした」}デフォルト使用
を私は(約束なし)このコードの別のバージョンを持っているし、それが適切に実行され、私の問題はカフカではないと確信しています。
私のコードのミスは何ですか?
P.S.私もこのリンクをチェックアウト:Wrapping Node.js callbacks in Promises using Bluebird とそれは私を助けませんでした。
編集:ここでは は、作業コードがある:あなたがこれを行う場合は
// health-check
app.get('/stats/health', cassandraHealthCheck, kafkaHealthCheck);
function cassandraHealthCheck(req, res, next) {
******.client.state.cassandraClient.execute('SELECT vehicle_id FROM vehicles.vehicles LIMIT 1', function(err) {
if (err) {
console.log ('Health Check for Cassandra failed');
} else {
console.log('Health Check for Cassandra passed');
next();
}
});
}
function kafkaHealthCheck(req, res, next) {
stats.kafkaService.producer.send([{topic: 'health_check', messages: 'health check message'}], function(err,data) {
if (err) {
console.log("Health Check for Kafka failed");
} else {
console.log("Health Check for Kafka passed");
}
});
};
正常に動作するコードを追加できますか? –