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());
|
request.setRawHeader("Authorization", ("Bearer " + accessToken).toUtf8());
|
||||||
|
|
||||||
QNetworkReply *reply = m_manager->get(request);
|
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]() {
|
connect(reply, &QNetworkReply::finished, this, [this, reply]() {
|
||||||
m_fetchingTasks = false;
|
m_fetchingTasks = false;
|
||||||
reply->deleteLater();
|
reply->deleteLater();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user