Add timeout mechanism in NetworkService to prevent hanging requests by aborting after 30 seconds.
This commit is contained in:
parent
e5e8500534
commit
a97bdea977
@ -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();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user