Оптимизация актуальности задач.
This commit is contained in:
2023-12-10 02:26:28 +03:00
parent fce85afc71
commit 127aec5a1d
13 changed files with 222 additions and 84 deletions

View File

@@ -25,6 +25,7 @@ import TestingSystem.DVM.Tasks.TestCompilationTask;
import TestingSystem.DVM.Tasks.TestRunTask;
import TestingSystem.DVM.Tasks.TestTask;
import TestingSystem.DVM.TasksPackage.TasksPackage;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import TestingSystem.DVM.UserConnection;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand;
@@ -108,7 +109,8 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
public static void TimerOn() {
System.out.println("timer on");
checkTimer = new Timer(Global.properties.CheckTestingIntervalSeconds * 1000, e -> {
Pass_2021.passes.get(PassCode_2021.SynchronizeTestsTasks).Do();
// Pass_2021.passes.get(PassCode_2021.SynchronizeTestsTasks).Do();
Pass_2021.passes.get(PassCode_2021.ActualizePackages).Do();
});
checkTimer.start();
}
@@ -354,11 +356,17 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
UpdateTestTasks();
response = new ServerExchangeUnit_2021(ServerCode.OK);
break;
case GetPackagesInfo:
Print("Получить данные по пакетам");
case ActualizeDVMPackages:
Print("Получить данные по пакетам DVM");
SetCurrentAccountDB(request.arg);
response = new ServerExchangeUnit_2021(ServerCode.OK);
GetPackagesInfo();
ActualizeDVMPackages();
break;
case ActualizeSAPFORPackages:
Print("Получить данные по пакетам SAPFOR");
SetCurrentAccountDB(request.arg);
response = new ServerExchangeUnit_2021(ServerCode.OK);
ActualizeSAPFORPackages();
break;
default:
throw new RepositoryRefuseException("Неподдерживаемый код: " + code);
@@ -372,7 +380,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
account_db.Delete(compilationTask);
for (TestRunTask runTask : compilationTask.runTasks) {
runTask.ChangeDate = new Date().getTime();
account_db.Update(runTask);
account_db.UpdateWithCheck(runTask);
}
}
account_db.Commit();
@@ -505,7 +513,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
}
}
}
//-------------------------------------------------------------------------------------->>>
@Override
protected Database getDefaultDatabase() {
@@ -621,7 +628,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
for (SapforTask task : tasks) {
account_db.Delete(task);
}
} else if (object instanceof SapforConfiguration){
} else if (object instanceof SapforConfiguration) {
SapforConfiguration sapforConfiguration = (SapforConfiguration) object;
Vector<SapforConfigurationCommand> commands = new Vector<>();
for (SapforConfigurationCommand command : db.sapforConfigurationCommands.Data.values()) {
@@ -634,7 +641,57 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
}
}
//---------------------------------------------------------------------------------------------->>>
void GetPackagesInfo() throws Exception{
Vector<Long> keys = (Vector<Long>) request.object;
void ActualizeDVMPackages() throws Exception {
Vector<Pair<Long, TasksPackageState>> keys_pairs = (Vector<Pair<Long, TasksPackageState>>) request.object;
//--
Vector<Pair<TasksPackage, Vector<TestRunTask>>> res = new Vector<>();
//--
for (Pair<Long, TasksPackageState> p : keys_pairs) {
if (account_db.packages.containsKey(p.getKey())) {
TasksPackage tasksPackage = account_db.packages.get(p.getKey());
if (!p.getValue().equals(tasksPackage.state)) {
Vector<TestRunTask> tasks = new Vector<>();
//если пакет завершен, берем задачи.
if (tasksPackage.state.equals(TasksPackageState.Done)) {
for (TestRunTask task : account_db.testRunTasks.Data.values()) {
if (task.taskspackage_id == tasksPackage.id) {
System.out.println(task.id+":"+task.state);
tasks.add(task);
}
}
}
res.add(new Pair<>(tasksPackage, tasks));
}
}
}
response.object = res;
//--
}
//--
void ActualizeSAPFORPackages() throws Exception {
Vector<Pair<Long, TasksPackageState>> keys_pairs = (Vector<Pair<Long, TasksPackageState>>) request.object;
//--
Vector<Pair<SapforTasksPackage, Vector<SapforTask>>> res = new Vector<>();
//--
for (Pair<Long, TasksPackageState> p : keys_pairs) {
if (account_db.sapforTasksPackages.containsKey(p.getKey())) {
SapforTasksPackage tasksPackage = account_db.sapforTasksPackages.get(p.getKey());
if (!p.getValue().equals(tasksPackage.state)) {
Vector<SapforTask> tasks = new Vector<>();
//если пакет завершен, берем задачи.
if (tasksPackage.state.equals(TasksPackageState.Done)) {
for (SapforTask task : account_db.sapforTasks.Data.values()) {
if (task.sapfortaskspackage_id == tasksPackage.id) {
System.out.println(task.id+":"+task.state);
tasks.add(task);
}
}
}
res.add(new Pair<>(tasksPackage, tasks));
}
}
}
response.object = res;
//--
}
}