add,计划采集12:
在界面中显示任务和其子任务,并实时更新它们的状态;
This commit is contained in:
@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user