0
アプリケーションからの大量のポーリングを処理し、メインのApacheサーバの負荷を軽減するために、スタンバイサーバ上で実行される単純なnode.jsサービスがあります。Node.js mysqlクエリが実行されていません
処理する呼び出しの1つが、他のサーバーに対してクエリを実行しますが、クエリを実行しないことがあります。
私の心にapp.get(/^\/rest\/[0-9]*\/*/, function (req, res) {
... get controller from url
if (controller=='appListEvents'){
console.log("appListEvents from "+req.connection.remoteAddress+" eid="+eid+" at "+getNow());
var sql="SELECT * from updates where status='PENDING' and eid = "+eid+" order by stamp, id";
connection.query(sql, function (error, rows, fields) {
res.type('application/xml');
if (error) {
console.log("appListEvents Query error is "+error);
res.send('<root><response>AppListEvents Query Error</response></root>');
return;
}
var xml = eventsToXml(rows);
res.send(xml);
console.log("appListEvents from "+req.connection.remoteAddress+" eid="+eid+"return XML" + xml);
return;
})
console.log("appListEvents Out of connection, from "+req.connection.remoteAddress+" eid="+eid);
}
、接続メッセージのアウトが表示されることはありません - のいずれかのデータは、いくつかのXMLが返送された場合には、クエリからあり、または場合にデータがない:コードはここにありますexentsToXmlはデータがないxmlを返します。
これは私が説明したように起こりますが、何かサービスを呼び出すと、接続が拒否されたというメッセージが表示されます。 if(エラー)部分でのエラー処理は決して引き起こされません。
私は、データベースが過負荷になっているため、クエリが削除されていると思います。
そのため、console.logエラーまたはconsole.logの成功メッセージのいずれかによって接続が断絶されることはありませんか? (非同期コールバックが最終的に実行に移るとき) –
私はそれがいつもこのように動作すると思います –