add,计划采集12:

在界面中显示任务和其子任务,并实时更新它们的状态;
This commit is contained in:
tangchao0503
2026-06-12 18:29:46 +08:00
parent 8329c00165
commit d9f1ed922b
9 changed files with 1243 additions and 390 deletions

View File

@ -220,7 +220,7 @@ void TaskExecutor::execute(const TimedTask& task)
m_task = task;
m_task.startTime = QDateTime::currentDateTime();
m_currentSubTaskIndex = 0;
m_isRunning = true;
@ -331,6 +331,8 @@ void TaskExecutor::onSequenceComplete(int status)
break;
}
}
emit taskUpdated(m_task);
}
void TaskExecutor::onBack2Origin()
@ -355,12 +357,15 @@ void TaskExecutor::onBack2Origin()
// 所有子任务完成
m_task.endTime = QDateTime::currentDateTime();
m_task.durationMinutes = (double)m_task.startTime.secsTo(m_task.endTime) / 60;
m_task.status = TaskStatus::Finished;
qDebug() << "TaskExecutor: task time consuming(Minutes): " << m_task.durationMinutes;
m_isRunning = false;
qDebug() << "TaskExecutor: All subtasks completed";
emit finished(true);
}
emit taskUpdated(m_task);
}
void TaskExecutor::onError(const QString& error)
@ -383,6 +388,8 @@ void TaskExecutor::executeNextSubTask()
subTask.status = TaskStatus::Running;
subTask.startTime = QDateTime::currentDateTime();
emit taskUpdated(m_task);
QString tmp = "TaskExecutor: Starting subtask" + QString::number(m_currentSubTaskIndex) + "type:" + static_cast<int>(subTask.type);
printMsgAndTime(tmp);
//printMsgAndTime("excute " + QString::number(m_currentSubTaskIndex) + " subTask: ");
@ -589,6 +596,18 @@ void TaskScheduler::executeTask(TimedTask& task)
connect(this, &TaskScheduler::sequenceCompleteSignal, m_currentExecutor, &TaskExecutor::onSequenceComplete);
connect(this, &TaskScheduler::Back2OriginSignal, m_currentExecutor, &TaskExecutor::onBack2Origin);
connect(m_currentExecutor, &TaskExecutor::taskUpdated,
this, [this](const TimedTask& updatedTask) {
for (int i = 0; i < m_tasks.size(); ++i) {
if (m_tasks[i].id == updatedTask.id) {
m_tasks[i] = updatedTask;
break;
}
}
emit taskDataChanged(updatedTask);
});
// 开始执行
m_currentExecutor->execute(task);
}