рабочий вариант отдельных процессов на разные машины

This commit is contained in:
2024-04-23 22:48:02 +03:00
parent f2d0eb0d2c
commit 4d543cb94f
11 changed files with 80 additions and 78 deletions

View File

@@ -37,6 +37,7 @@ import java.io.File;
import java.nio.file.Paths;
import java.util.*;
public class TestingServer extends RepositoryServer<TestsDatabase> {
public String name = "?";
@Override
public void afterPublishAction(DBObject object) throws Exception {
if (object instanceof Test) {
@@ -106,6 +107,8 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
//-->>>
public TestingServer() {
super(TestsDatabase.class);
name = Utils.getDateName("testingServer");
System.out.println("ServerName=" + Utils.Brackets(name));
}
//основа
@Override
@@ -120,31 +123,11 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
protected DVMTestingPlanner DVMTestingPlanner = new DVMTestingPlanner();
protected SapforTestingPlanner sapforTestingPlanner = new SapforTestingPlanner();
//--
void checkMachinesActivity() {
System.out.println("Проверка активности нитей машин...");
try {
Vector<MachineProcess> toUpdate = new Vector<>();
for (MachineProcess machineProcess : db.machinesProcesses.Data.values()) {
if (machineProcess.isAborted()) {
toUpdate.add(machineProcess);
}
}
db.BeginTransaction();
for (MachineProcess machineProcess : toUpdate) {
machineProcess.state = MachineProcessState.Aborted;
db.Update(machineProcess);
}
db.Commit();
} catch (Exception ex) {
ex.printStackTrace();
}
System.out.println("done");
}
void startNecessaryMachines() {
System.out.println("Запуск необходимых нитей машин...");
//todo. когда БД машин будет перенесена только на сервер. просто идти по всем машинам.
try {
LinkedHashMap<String, MachineProcess> active_processes = db.machinesProcesses.getActiveSortedByKeys();
LinkedHashMap<String, MachineProcess> active_processes = db.machinesProcesses.getSortedByKeys();
LinkedHashMap<String, MachineProcess> processes_to_start = new LinkedHashMap<>();
//1. Получить список всех пакетов, которые активны, и взять из них машины.
for (DVMPackage dvmPackage : db.dvmPackages.Data.values()) {
@@ -179,10 +162,10 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
process.Start();
if (Utils.checkFileCreation(process.getStartedFile())) {
process.state = MachineProcessState.Active;
db.Insert(process);
db.machinesProcesses.Data.put(process.id, process);
System.out.println("Выполнено");
}else {
System.out.println("Не удалось запустить процесс.");
} else {
System.out.println("Не удалось запустить процесс.");
}
}
} catch (Exception ex) {
@@ -195,7 +178,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
while (true) {
// DVMTestingPlanner.Perform();
// sapforTestingPlanner.Perform();
checkMachinesActivity();
startNecessaryMachines();
System.out.println("sleep...");
Utils.sleep(5000);
@@ -304,6 +286,10 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Print("Получить первый активный пакет задач DVM на машине с адресом");
GetFirstActiveDVMPackageForMachineURL();
break;
case GetServerName:
Print("Получить имя сервера");
GetServerName();
break;
default:
throw new RepositoryRefuseException("Неподдерживаемый код: " + code);
}
@@ -647,6 +633,10 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = jsons;
}
private void GetServerName() throws Exception {
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = name;
}
//--
private void GetFirstActiveDVMPackageForMachineURL() {
response = new ServerExchangeUnit_2021(ServerCode.OK);