no message

This commit is contained in:
2024-04-26 17:57:58 +03:00
parent c6e5036b9c
commit 830aa1a948
11 changed files with 209 additions and 161 deletions

View File

@@ -17,6 +17,7 @@ import TestingSystem.Common.Test.TestType;
import TestingSystem.Common.TestingPackageToKill.TestingPackageToKill;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMPackage.DVMPackage_json;
import TestingSystem.DVM.DVMTestingChecker;
import TestingSystem.SAPFOR.Json.SapforPackage_json;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand;
@@ -118,55 +119,13 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
protected void startAdditionalThreads() {
testingThread.start();
}
protected SapforTestingPlanner sapforTestingPlanner = new SapforTestingPlanner();
//--
void startNecessaryMachines() {
//todo. когда БД машин будет перенесена только на сервер. просто идти по всем машинам.
System.out.println("Проверка процессов машин...");
try {
Vector<String> aborted = new Vector<>();
for (MachineProcess process : db.machinesProcesses.Data.values()) {
if (process.isAborted()) {
aborted.add(process.id);
}
}
//---
for (String key : aborted) {
System.out.println(key + " остановлен");
db.machinesProcesses.Data.remove(key);
}
//---
System.out.println(db.machinesProcesses.size() + " активных процессов");
//--
LinkedHashMap<String, MachineProcess> processes_to_start = new LinkedHashMap<>();
//1. Получить список всех пакетов, которые активны, и взять из них машины.
for (DVMPackage dvmPackage : db.dvmPackages.Data.values()) {
if (dvmPackage.state.isActive()) {
//-
if (!db.machinesProcesses.hasProcessForPackage(dvmPackage)) {
MachineProcess new_process = new MachineProcess(dvmPackage);
processes_to_start.put(new_process.getUniqueKey(), new_process);
}
}
}
System.out.println("Ожидающие запуск процессы: " + processes_to_start.size());
//запуск.
for (MachineProcess process : processes_to_start.values()) {
process.Start();
if (Utils.checkFileCreation(process.getStartedFile())) {
db.machinesProcesses.Data.put(process.id, process);
System.out.println(process.getUniqueKey()+" запущен");
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
DVMTestingChecker dvmTestingChecker = new DVMTestingChecker();
SapforTestingPlanner sapforTestingPlanner = new SapforTestingPlanner();
//--
protected Thread testingThread = new Thread(() -> {
while (true) {
// DVMTestingPlanner.Perform();
startNecessaryMachines();
dvmTestingChecker.Perform();
sapforTestingPlanner.Perform();
System.out.println("sleep...");
Utils.sleep(5000);
@@ -267,10 +226,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Print("Получить информацию о задачах пакетов DVM");
GetDVMPackagesJson();
break;
case GetFirstsActiveDVMPackages:
Print("Получить первые активные пакеты задач DVM на машинах");
GetFirstActiveDVMPackagesByMachines();
break;
case GetFirstActiveDVMPackageForMachineURL:
Print("Получить первый активный пакет задач DVM на машине с адресом");
GetFirstActiveDVMPackageForMachineURL();
@@ -279,6 +234,10 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Print("Получить имя сервера");
GetServerName();
break;
case StartNecessaryMachines:
Print("Проверка процессов машин");
StartNecessaryMachines();
break;
default:
throw new RepositoryRefuseException("Неподдерживаемый код: " + code);
}
@@ -359,11 +318,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
for (Pair<Group, Vector<File>> p : groups)
db.RefreshGroup(account, sapfor, p);
}
private void GetFirstActiveDVMPackagesByMachines() {
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = new Vector<>();
// db.getFirstActiveDVMPackagesCopies(); //ЗАГЛУШКА. ЗА ПАКЕТЫ ДВМ ОТВЕЧАЕТ ОТДЕЛЬНЫЙ ПРОЦЕСС НА КАЖДУЮ МАШИНУ
}
private void GetFirstActiveSapforPackages() throws Exception {
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = db.getFirstActiveSapforPackagesCopies();
@@ -632,5 +586,46 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
response.object = db.getFirstActiveDVMPackageCopyForMachineURL(request.arg);
}
//-----
void StartNecessaryMachines() {
Print("Проверка процессов машин...");
try {
Vector<String> aborted = new Vector<>();
for (MachineProcess process : db.machinesProcesses.Data.values()) {
if (process.isAborted()) {
aborted.add(process.id);
}
}
//---
for (String key : aborted) {
Print(key + " остановлен");
db.machinesProcesses.Data.remove(key);
}
//---
Print(db.machinesProcesses.size() + " активных процессов");
//--
LinkedHashMap<String, MachineProcess> processes_to_start = new LinkedHashMap<>();
//1. Получить список всех пакетов, которые активны, и взять из них машины.
for (DVMPackage dvmPackage : db.dvmPackages.Data.values()) {
if (dvmPackage.state.isActive()) {
//-
if (!db.machinesProcesses.hasProcessForPackage(dvmPackage)) {
MachineProcess new_process = new MachineProcess(dvmPackage);
processes_to_start.put(new_process.getUniqueKey(), new_process);
}
}
}
Print("Ожидающие запуск процессы: " + processes_to_start.size());
//запуск.
for (MachineProcess process : processes_to_start.values()) {
process.Start();
if (Utils.checkFileCreation(process.getStartedFile())) {
db.machinesProcesses.Data.put(process.id, process);
Print(process.getUniqueKey()+" запущен");
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}