2023-12-03 13:09:16 +03:00
|
|
|
#pragma once
|
|
|
|
|
|
2023-09-17 22:13:42 +03:00
|
|
|
#include "CompilationSupervisor.h"
|
|
|
|
|
#include "RunTask.h"
|
2023-12-03 13:09:16 +03:00
|
|
|
|
|
|
|
|
class RunSupervisor : public Supervisor<RunTask> {
|
|
|
|
|
public:
|
|
|
|
|
RunSupervisor(CompilationSupervisor* compilationSupervisor) {
|
|
|
|
|
this->init("runTasks", 8);
|
2023-09-17 22:13:42 +03:00
|
|
|
//проверить отмененные задачи.
|
2023-12-03 13:41:29 +03:00
|
|
|
for (long i = 0; i < getLength(); ++i) {
|
2023-12-03 13:09:16 +03:00
|
|
|
RunTask* task = this->get(i);
|
|
|
|
|
CompilationTask* parent = compilationSupervisor->getTaskById(task->getTestCompilationTaskId());
|
|
|
|
|
task->setState((parent->getState() == Done) ? Waiting : Canceled);
|
|
|
|
|
task->setParent(parent);
|
2023-09-17 22:13:42 +03:00
|
|
|
printf("id=%ld; parent_id = %ld; state=%s\n",
|
2023-12-03 13:09:16 +03:00
|
|
|
task->getId(),
|
|
|
|
|
task->getParent()->getId(),
|
|
|
|
|
task->printState().getCharArray());
|
|
|
|
|
}
|
2023-09-17 22:13:42 +03:00
|
|
|
}
|
2023-12-03 13:09:16 +03:00
|
|
|
virtual String getStatePrefix() {
|
2023-09-17 22:13:42 +03:00
|
|
|
return String("Running");
|
|
|
|
|
}
|
2023-12-03 13:09:16 +03:00
|
|
|
virtual void Finalize() {
|
2023-09-17 22:13:42 +03:00
|
|
|
this->state = Archivation;
|
|
|
|
|
saveState();
|
|
|
|
|
printf("Archivation started\n");
|
2023-12-03 13:09:16 +03:00
|
|
|
Utils::ZipFolder(String("./"), String("archive.zip"));
|
2023-09-17 22:13:42 +03:00
|
|
|
printf("Archivation ended\n");
|
2023-12-03 13:09:16 +03:00
|
|
|
|
2023-09-17 22:13:42 +03:00
|
|
|
}
|
2023-12-03 13:09:16 +03:00
|
|
|
};
|