рабочий вариант отдельных процессов на разные машины
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user