SOAP Web サービスを監視するコードをいくつか書きました。基本的に、QNetworkAccessManager を使用して HTTP GET 要求を Web サービス アドレスに送信し、応答を受信した場合、サービスが稼働していることがわかります。私はこれが機能していると思っていましたが、時々 (2、3 日に 1 回) サーバーがダウンしているという通知を受け取り、次にチェックすると再びアップしていると表示されます。したがって、サーバーが実際にダウンしているわけではなく、リクエストに何かが起こっています。Web サービスを監視するためのより良い方法があるかどうか疑問に思っていました。以下は、私が行ったことを示す擬似コードです。
main{
Qtimer timer;
connect(timer, SIGNAL(timeout()), this, SLOT(send()));
timer.start(300000);
}
send(){
QNetworkAccessManager *qnam;
connect(qnam, SIGNAL(finished(QNetworkReply*)), this, SLOT(requestFinished(QNetworkReply*));
qnam.get("https://testWebservice.com/TEST/webservice");
}
requestFinished(QNetworkReply *reply){
QByteArray data = reply.getData();
if(reply.error == some sort of error indicating server is down, or if reply == empty){
***SERVER DOWN***
}
else{
***SERVER UP***
}
}
EDITはif条件を 変更してエラーチェックを含めました