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