1
0
forked from BRT/arc

Add timeout mechanism in NetworkService to prevent hanging requests by aborting after 30 seconds.

This commit is contained in:
slava 2026-04-13 19:16:22 +07:00
parent e5e8500534
commit a97bdea977

View File

@ -1262,6 +1262,14 @@ void NetworkService::getTasks(const QStringList &materialIds) {
request.setRawHeader("Authorization", ("Bearer " + accessToken).toUtf8());
QNetworkReply *reply = m_manager->get(request);
// Таймаут 30 сек: если ответ не пришёл, abort reply чтобы m_fetchingTasks не залип
auto *timeoutTimer = new QTimer(this);
timeoutTimer->setSingleShot(true);
connect(timeoutTimer, &QTimer::timeout, reply, [reply]() { reply->abort(); });
connect(reply, &QNetworkReply::finished, timeoutTimer, &QTimer::stop);
connect(reply, &QNetworkReply::finished, timeoutTimer, &QObject::deleteLater);
timeoutTimer->start(30000);
connect(reply, &QNetworkReply::finished, this, [this, reply]() {
m_fetchingTasks = false;
reply->deleteLater();