Adds immediate migration results in progress

This commit is contained in:
torsten committed 2026-08-19 11:18:24 +02:00
1 parent 8453e104c5
commit 3bb6e89496
2102 files changed
+17482 -15071

No files matched your search

@@ -22,12 +22,11 @@
namespace ExerciseEventManagement
{
WebSocketEventServer::WebSocketEventServer(const QSqlDatabase &db, QObject *parent)
: QObject(parent)
WebSocketEventServer::WebSocketEventServer(const QSqlDatabase &db, QObject *parent) : QObject(parent)
, m_wsServer(nullptr)
, m_cleanupTimer(new QTimer(this))
, m_db(db)
{
, m_db(db),
m_logger(NGL::NGLLoggerBootstrap::getLogger()) {
m_cleanupTimer->setInterval(10000); // clear every 10s
connect(m_cleanupTimer, &QTimer::timeout, this, &WebSocketEventServer::onCleanupLiveHistory);
}
@@ -94,7 +93,7 @@ void WebSocketEventServer::onNewConnection()
QWebSocket *ws = m_wsServer->nextPendingConnection();
if (!ws)
return;
DEBUG_LOG() << "New incoming connection from "
DEBUG_LOG(m_logger) << "New incoming connection from "
<< ws->peerAddress().toString() << ":"
<< ws->peerPort() << ", "
<< ws->requestUrl().toString();
@@ -115,7 +114,7 @@ void WebSocketEventServer::onNewConnection()
historyDataRequested(m_db, ws, requestUrl);
else
{
WARNING_LOG() << "Unknown request path: '" << requestPath << "' - closing";
WARNING_LOG(m_logger) << "Unknown request path: '" << requestPath << "' - closing";
ws->close();
ws->deleteLater();
}
@@ -126,7 +125,7 @@ void WebSocketEventServer::onSocketDisconnected()
QWebSocket *ws = qobject_cast<QWebSocket *>(sender());
if (!ws)
return;
DEBUG_LOG() << "Disconnected from "
DEBUG_LOG(m_logger) << "Disconnected from "
<< ws->peerAddress().toString() << ":"
<< ws->peerPort() << ", "
<< ws->requestUrl().toString();
@@ -150,7 +149,7 @@ void WebSocketEventServer::historyDataRequested(const QSqlDatabase &db, QWebSock
const qint64 to = query.queryItemValue(QStringLiteral("to")).toLongLong();
if (requestId == 0 || from <= 0 || to <= 0 || from > to)
{
WARNING_LOG() << "Unknown request: '" << requestUrl.toString() << "' - closing, "
WARNING_LOG(m_logger) << "Unknown request: '" << requestUrl.toString() << "' - closing, "
<< requestId << ", " << from << ", to " << to;
ws->sendTextMessage(QStringLiteral("{}"));
ws->close();
@@ -184,7 +183,7 @@ void WebSocketEventServer::historyDataRequested(const QSqlDatabase &db, QWebSock
if (query.hasQueryItem(QStringLiteral("filter")))
{
const QString filterString = query.queryItemValue(QStringLiteral("filter"));
DEBUG_LOG() << "filter string: " << filterString;
DEBUG_LOG(m_logger) << "filter string: " << filterString;
const QJsonObject obj(QJsonDocument::fromJson(filterString.toUtf8()).object());
if (obj.keys().size() == 1)
{
@@ -210,16 +209,16 @@ void WebSocketEventServer::historyDataRequested(const QSqlDatabase &db, QWebSock
if (query.hasQueryItem(QStringLiteral("limit")))
{
const QString limitString = query.queryItemValue(QStringLiteral("limit"));
DEBUG_LOG() << "limiting query to " << limitString << " events";
DEBUG_LOG(m_logger) << "limiting query to " << limitString << " events";
stmt += QStringLiteral(" LIMIT ") + limitString;
}
DEBUG_LOG() << "stmt: " << stmt;
DEBUG_LOG(m_logger) << "stmt: " << stmt;
NSqlQuery q(db);
if (!q.exec(stmt))
{
ERROR_LOG() << "Error while selecting event-data: " << stmt << ", " << q.lastError().databaseText();
ERROR_LOG(m_logger) << "Error while selecting event-data: " << stmt << ", " << q.lastError().databaseText();
ws->sendTextMessage(QStringLiteral("{}"));
ws->close();
ws->deleteLater();
@@ -246,7 +245,7 @@ void WebSocketEventServer::historyDataRequested(const QSqlDatabase &db, QWebSock
events.append(Database::toJson(data));
if (events.size() > 100)
{
INFO_LOG() << "Sending an answer with " << events.size() << " events for query " << stmt;
INFO_LOG(m_logger) << "Sending an answer with " << events.size() << " events for query " << stmt;
const QJsonDocument doc(events);
ws->sendTextMessage(QString::fromUtf8(doc.toJson(QJsonDocument::Compact)));
events = QJsonArray();
@@ -254,7 +253,7 @@ void WebSocketEventServer::historyDataRequested(const QSqlDatabase &db, QWebSock
}
if (!events.isEmpty())
{
INFO_LOG() << "Sending an answer with " << events.size() << " events for query " << stmt;
INFO_LOG(m_logger) << "Sending an answer with " << events.size() << " events for query " << stmt;
const QJsonDocument doc(events);
ws->sendTextMessage(QString::fromUtf8(doc.toJson(QJsonDocument::Compact)));
}