Refactor TaskDumpRecorder to adjust LogArchiveSender invocation for improved dump and log dispatch sequencing, and remove redundant usages in EventHandler.
This commit is contained in:
parent
0045c37d64
commit
9da2a6fc52
@ -220,9 +220,6 @@ void TaskDumpRecorder::finishInternal(const QString &errorMessage) {
|
|||||||
qWarning() << "[TaskDumpRecorder] task failed:" << errorMessage
|
qWarning() << "[TaskDumpRecorder] task failed:" << errorMessage
|
||||||
<< "folder:" << m_folder;
|
<< "folder:" << m_folder;
|
||||||
|
|
||||||
// application.log + БД (с WAL/SHM) уходят отдельным архивом через готовый sender.
|
|
||||||
LogArchiveSender::dispatch(QStringLiteral("TASK_ERROR"));
|
|
||||||
|
|
||||||
// Финальный скриншот текущего экрана
|
// Финальный скриншот текущего экрана
|
||||||
if (!m_adbDeviceIdRaw.isEmpty()) {
|
if (!m_adbDeviceIdRaw.isEmpty()) {
|
||||||
const QByteArray png = AdbUtils::captureScreenshotBytes(m_adbDeviceIdRaw);
|
const QByteArray png = AdbUtils::captureScreenshotBytes(m_adbDeviceIdRaw);
|
||||||
@ -282,11 +279,7 @@ void TaskDumpRecorder::finishInternal(const QString &errorMessage) {
|
|||||||
QFile::remove(archivePath);
|
QFile::remove(archivePath);
|
||||||
|
|
||||||
NetworkService *svc = networkServiceRef().data();
|
NetworkService *svc = networkServiceRef().data();
|
||||||
if (!svc) {
|
if (svc) {
|
||||||
qWarning() << "[TaskDumpRecorder] no NetworkService — dump dropped for" << folder
|
|
||||||
<< "(setNetworkService was not called at app startup?)";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
qDebug() << "[TaskDumpRecorder] dispatching dump to NetworkService"
|
qDebug() << "[TaskDumpRecorder] dispatching dump to NetworkService"
|
||||||
<< "archive.size=" << archiveBytes.size()
|
<< "archive.size=" << archiveBytes.size()
|
||||||
<< "image.size=" << finalScreenshot.size()
|
<< "image.size=" << finalScreenshot.size()
|
||||||
@ -300,6 +293,15 @@ void TaskDumpRecorder::finishInternal(const QString &errorMessage) {
|
|||||||
qCritical() << "[TaskDumpRecorder] invokeMethod(postMonitoringDump) FAILED — "
|
qCritical() << "[TaskDumpRecorder] invokeMethod(postMonitoringDump) FAILED — "
|
||||||
"slot not found or wrong signature for" << folder;
|
"slot not found or wrong signature for" << folder;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
qWarning() << "[TaskDumpRecorder] no NetworkService — dump dropped for" << folder
|
||||||
|
<< "(setNetworkService was not called at app startup?)";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Следом — application.log + БД (+ WAL/SHM) отдельным архивом.
|
||||||
|
// Запускаем уже ПОСЛЕ того, как task-дамп поставлен в очередь
|
||||||
|
// отправки, чтобы порядок прихода на relay был "дамп → логи".
|
||||||
|
LogArchiveSender::dispatch(QStringLiteral("TASK_ERROR"));
|
||||||
});
|
});
|
||||||
QObject::connect(bg, &QThread::finished, bg, &QObject::deleteLater);
|
QObject::connect(bg, &QThread::finished, bg, &QObject::deleteLater);
|
||||||
bg->start();
|
bg->start();
|
||||||
|
|||||||
@ -16,7 +16,6 @@
|
|||||||
#include "dao/EventDAO.h"
|
#include "dao/EventDAO.h"
|
||||||
#include "dao/SettingsDAO.h"
|
#include "dao/SettingsDAO.h"
|
||||||
#include "dao/TransactionDAO.h"
|
#include "dao/TransactionDAO.h"
|
||||||
#include "LogArchiveSender.h"
|
|
||||||
#include "db/BankProfileInfo.h"
|
#include "db/BankProfileInfo.h"
|
||||||
#include "adb/AdbUtils.h"
|
#include "adb/AdbUtils.h"
|
||||||
#include "dao/GeneralLogDAO.h"
|
#include "dao/GeneralLogDAO.h"
|
||||||
@ -224,8 +223,8 @@ static void sendTaskError(const QString &type, const QString &materialId, const
|
|||||||
sendMonitoringLog("error", "task_error", message, screenshot, eventId);
|
sendMonitoringLog("error", "task_error", message, screenshot, eventId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Следом ушлём application.log + БД (с WAL/SHM) одним архивом.
|
// application.log + БД отправляются из TaskDumpRecorder::finishInternal,
|
||||||
LogArchiveSender::dispatch(QStringLiteral("TASK_ERROR"), eventId);
|
// чтобы покрывать также non-event-driven задачи (login flow и т.п.).
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sendMonitoringLog(const QString &type, const QString &event, const QString &message,
|
static void sendMonitoringLog(const QString &type, const QString &event, const QString &message,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user