доделал отображение прогресса и актуализацию активных пакетов. пришлось заменить признак изменения с состояния на дату изменения.
This commit is contained in:
6
.idea/workspace.xml
generated
6
.idea/workspace.xml
generated
@@ -9,11 +9,11 @@
|
||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Common/UI/Menus_2023/DVMPackagesBar/DVMPackagesBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/Menus_2023/DVMPackagesBar/DVMPackagesBar.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPackage/TestingPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPackage/TestingPackage.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPlanner.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackage.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTestingPlanner.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ActualizeDVMPackages.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ActualizeDVMPackages.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/files/Planner/Supervisor.h" beforeDir="false" afterPath="$PROJECT_DIR$/src/files/Planner/Supervisor.h" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"PerformanceAnalyzerPath": "",
|
||||
"ComponentsBackUpsCount": 10,
|
||||
"TestingKernels": 28,
|
||||
"AutoCheckTesting": false,
|
||||
"AutoCheckTesting": true,
|
||||
"CheckTestingIntervalSeconds": 10,
|
||||
"EmailOnTestingProgress": false
|
||||
}
|
||||
@@ -91,9 +91,19 @@ public abstract class TestingPlanner<P extends TestingPackage> {
|
||||
protected void Disconnect() {
|
||||
}
|
||||
//---
|
||||
/*
|
||||
protected void CheckExecutionStates() throws Exception{
|
||||
|
||||
case CompilationWorkspacesCreation:
|
||||
case CompilationPreparation:
|
||||
case CompilationExecution:
|
||||
case RunningWorkspacesCreation:
|
||||
case RunningPreparation:
|
||||
case RunningExecution:
|
||||
if (CheckNextState()) UpdatePackage();
|
||||
break;
|
||||
}
|
||||
*/
|
||||
//жизненный цикл планировщика
|
||||
protected void Session() throws Exception {
|
||||
switch (testingPackage.state) {
|
||||
@@ -109,21 +119,15 @@ public abstract class TestingPlanner<P extends TestingPackage> {
|
||||
PackageStart();
|
||||
EmailPackage();
|
||||
testingPackage.StartDate = new Date().getTime();
|
||||
testingPackage.progress = 0;
|
||||
UpdatePackageState(getStateAfterStart());
|
||||
break;
|
||||
case CompilationWorkspacesCreation:
|
||||
case CompilationPreparation:
|
||||
case CompilationExecution:
|
||||
case RunningWorkspacesCreation:
|
||||
case RunningPreparation:
|
||||
case RunningExecution:
|
||||
if (CheckNextState()) UpdatePackage();
|
||||
break;
|
||||
case RunningEnd:
|
||||
DownloadResults();
|
||||
UpdatePackageState(TasksPackageState.Analysis);
|
||||
break;
|
||||
default:
|
||||
if (CheckNextState()) UpdatePackage();
|
||||
break;
|
||||
}
|
||||
}
|
||||
// ---
|
||||
|
||||
@@ -377,8 +377,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
break;
|
||||
case GetFirstActiveDVMPackage:
|
||||
Print("Получить первый активный пакет задач DVM");
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
response.object = db.getFirstActiveDVMPackage();
|
||||
GetFirstActiveDVMPackage();
|
||||
break;
|
||||
case DVMPackageNeedsKill:
|
||||
Print("Проверить нуждает ли пакет DVM в убийстве");
|
||||
@@ -724,17 +723,26 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
//--
|
||||
}
|
||||
//--
|
||||
void GetFirstActiveDVMPackage() throws Exception {
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
response.object = null;
|
||||
DVMPackage dvmPackage = db.getFirstActiveDVMPackage();
|
||||
if (dvmPackage != null) {
|
||||
//нужно вернуть копию объекта с иным адресом!!
|
||||
response.object = new DVMPackage(dvmPackage);
|
||||
}
|
||||
}
|
||||
//---
|
||||
void UpdateActiveDVMPackages() throws Exception {
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
Vector<Pair<Integer, TasksPackageState>> keys_pairs = (Vector<Pair<Integer, TasksPackageState>>) request.object;
|
||||
Vector<Pair<Integer, Long>> keys_pairs = (Vector<Pair<Integer, Long>>) request.object;
|
||||
Vector<DVMPackage> res = new Vector<>();
|
||||
//--
|
||||
for (Pair<Integer, TasksPackageState> p : keys_pairs) {
|
||||
for (Pair<Integer, Long> p : keys_pairs) {
|
||||
if (db.dvmPackages.containsKey(p.getKey())) {
|
||||
DVMPackage tasksPackage = db.dvmPackages.get(p.getKey());
|
||||
if (!p.getValue().equals(tasksPackage.state))
|
||||
res.add(tasksPackage);
|
||||
DVMPackage actual = db.dvmPackages.get(p.getKey());
|
||||
if (actual.ChangeDate != p.getValue())
|
||||
res.add(new DVMPackage(actual));
|
||||
}
|
||||
}
|
||||
response.object = res;
|
||||
|
||||
@@ -238,19 +238,15 @@ public class DVMTestingPlanner extends TestingPlanner<DVMPackage> {
|
||||
protected boolean CheckNextState() throws Exception {
|
||||
boolean progress_changed = false;
|
||||
boolean state_changed = false;
|
||||
|
||||
RemoteFile progress = new RemoteFile(packageRemoteWorkspace, "progress");
|
||||
if (user.connection.Exists(progress)) {
|
||||
String s = user.connection.readFromFile(progress).replace("\r", "").replace("\n", "");
|
||||
String s = user.connection.readFromFile(progress);
|
||||
int current_progress = Integer.parseInt(s);
|
||||
System.out.println("current_progress="+current_progress);
|
||||
System.out.println("old_progress="+testingPackage.progress);
|
||||
/*
|
||||
if (current_progress != testingPackage.progress) {
|
||||
Print("progress changed: "+current_progress);
|
||||
testingPackage.progress = current_progress;
|
||||
progress_changed = true;
|
||||
}
|
||||
*/
|
||||
}
|
||||
RemoteFile stateDir = new RemoteFile(packageRemoteWorkspace, "state");
|
||||
//состояния пакета могут меняться только по возрастанию. ищем, появилось ли такое.
|
||||
|
||||
@@ -1,18 +1,13 @@
|
||||
package Visual_DVM_2021.Passes.All;
|
||||
import Common.Current;
|
||||
import Common.Global;
|
||||
import Common.UI.UI;
|
||||
import Repository.Server.ServerCode;
|
||||
import Repository.Server.ServerExchangeUnit_2021;
|
||||
import TestingSystem.DVM.DVMPackage.DVMPackage;
|
||||
import TestingSystem.DVM.Tasks.TestRunTask;
|
||||
import TestingSystem.DVM.TasksPackage.TasksPackage;
|
||||
import TestingSystem.DVM.TasksPackage.TasksPackageState;
|
||||
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
|
||||
import javafx.util.Pair;
|
||||
|
||||
import java.util.Vector;
|
||||
public class ActualizeDVMPackages extends TestingSystemPass<Vector<Pair<Integer, TasksPackageState>>> {
|
||||
public class ActualizeDVMPackages extends TestingSystemPass<Vector<Pair<Integer, Long>>> {
|
||||
@Override
|
||||
protected boolean needsAnimation() {
|
||||
return false;
|
||||
@@ -25,7 +20,7 @@ public class ActualizeDVMPackages extends TestingSystemPass<Vector<Pair<Integer,
|
||||
System.out.println(dvmPackage.id + " " + dvmPackage.state);
|
||||
if (dvmPackage.state.isActive()) {
|
||||
System.out.println(dvmPackage.state);
|
||||
target.add(new Pair(dvmPackage.id, dvmPackage.state));
|
||||
target.add(new Pair(dvmPackage.id, dvmPackage.ChangeDate));
|
||||
System.out.println(dvmPackage.id);
|
||||
}
|
||||
}
|
||||
@@ -40,8 +35,8 @@ public class ActualizeDVMPackages extends TestingSystemPass<Vector<Pair<Integer,
|
||||
protected void performDone() throws Exception {
|
||||
Vector<DVMPackage> res = (Vector<DVMPackage>) response.object;
|
||||
Global.testingServer.db.BeginTransaction();
|
||||
for (DVMPackage dvmPackage : res)
|
||||
Global.testingServer.db.UpdateWithCheck(dvmPackage);
|
||||
for (DVMPackage actual : res)
|
||||
Global.testingServer.db.UpdateWithCheck(actual);
|
||||
Global.testingServer.db.Commit();
|
||||
}
|
||||
@Override
|
||||
|
||||
@@ -79,6 +79,7 @@ public:
|
||||
}
|
||||
void DoWithSchedule(int maxKernels) {
|
||||
saveState();
|
||||
saveProgress(0);
|
||||
// подготовка тестов
|
||||
while (this->state != Execution) {
|
||||
for (auto& task : this->getElements()) {
|
||||
@@ -193,11 +194,7 @@ public:
|
||||
#endif
|
||||
if ((done % step) == 0) {
|
||||
size_t persentDone = (done / total) * 100.0;
|
||||
FILE *f = fopen("progress", "w");
|
||||
if (f) {
|
||||
fprintf(f, "%lld\n", persentDone);
|
||||
fclose(f);
|
||||
}
|
||||
saveProgress(persentDone);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -208,8 +205,14 @@ public:
|
||||
File tmp(outFile, String(buf.c_str()));
|
||||
}
|
||||
void saveState() {
|
||||
Utils::Sleep(1); //чтобы не было одинаковых по дате файлов.
|
||||
String stateFile = packageWorkspace + "/state/" + getStatePrefix() + printState();
|
||||
File tmp(stateFile, Utils::getDate());
|
||||
}
|
||||
void saveProgress(long long persentDone) {
|
||||
FILE *f = fopen("progress", "w");
|
||||
if (f) {
|
||||
fprintf(f, "%lld", persentDone);
|
||||
fclose(f);
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user