Лимит ошибок связи 10
This commit is contained in:
2024-04-08 01:30:46 +03:00
parent 09afe82704
commit 4e503d3b9b
8 changed files with 56 additions and 24 deletions

10
.idea/workspace.xml generated
View File

@@ -6,7 +6,15 @@
</artifacts-to-build> </artifacts-to-build>
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<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$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TasksPackageState.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TasksPackageState.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/TestsDatabase.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestsDatabase.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/UserConnection.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/UserConnection.java" afterDir="false" />
</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" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />

View File

@@ -10,7 +10,7 @@
"SMTPHost": "smtp.mail.ru", "SMTPHost": "smtp.mail.ru",
"SMTPPort": 465, "SMTPPort": 465,
"MailSocketPort": 465, "MailSocketPort": 465,
"collapseCredentials": true, "collapseCredentials": false,
"collapseFileGraphs": false, "collapseFileGraphs": false,
"collapseFileMessages": false, "collapseFileMessages": false,
"collapseProjectTrees": false, "collapseProjectTrees": false,

View File

@@ -62,7 +62,7 @@ public class Visualiser extends Component {
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html //http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
@Override @Override
public void GetVersionInfo() { public void GetVersionInfo() {
version = 1091; version = 1092;
String pattern = "MMM dd yyyy HH:mm:ss"; String pattern = "MMM dd yyyy HH:mm:ss";
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH); DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
date_text = df.format(getClassBuildTime()); date_text = df.format(getClassBuildTime());

View File

@@ -28,12 +28,15 @@ public enum TasksPackageState implements StatusEnum {
Analysis, Analysis,
//- //-
Done, Done,
Aborted; Aborted,
ConnectionError
;
public boolean isActive() { public boolean isActive() {
switch (this) { switch (this) {
case Done: case Done:
case Aborted: case Aborted:
case Draft: case Draft:
case ConnectionError:
return false; return false;
default: default:
return true; return true;
@@ -88,6 +91,8 @@ public enum TasksPackageState implements StatusEnum {
return "анализ результатов"; return "анализ результатов";
case Done: case Done:
return "завершен"; return "завершен";
case ConnectionError:
return "Сбой связи";
default: default:
return StatusEnum.super.getDescription(); return StatusEnum.super.getDescription();
} }

View File

@@ -20,6 +20,8 @@ public abstract class TestingPackage<J> extends riDBObject {
public int progress = 0; //прогресс выполнения public int progress = 0; //прогресс выполнения
public long StartDate = 0; public long StartDate = 0;
public long ChangeDate = 0; public long ChangeDate = 0;
@Description("DEFAULT 0")
public int connectionErrosCount = 0;
public TasksPackageState state = TasksPackageState.Draft; public TasksPackageState state = TasksPackageState.Draft;
//-- //--
@Override @Override
@@ -36,6 +38,7 @@ public abstract class TestingPackage<J> extends riDBObject {
progress = tp.progress; progress = tp.progress;
StartDate = tp.StartDate; StartDate = tp.StartDate;
ChangeDate = tp.ChangeDate; ChangeDate = tp.ChangeDate;
connectionErrosCount = tp.connectionErrosCount;
state = tp.state; state = tp.state;
} }
public TestingPackage(TestingPackage p) { public TestingPackage(TestingPackage p) {

View File

@@ -138,28 +138,40 @@ public abstract class TestingPlanner<P extends TestingPackage> {
//-- //--
Print(testingPackage.id + ":" + testingPackage.state.getDescription()); Print(testingPackage.id + ":" + testingPackage.state.getDescription());
//-- //--
InitSessionCredentials(); if (testingPackage.connectionErrosCount>=10){
if (testingPackage.state.equals(TasksPackageState.Analysis)) { Print(testingPackage.id+" had 10 connection errors. stop");
AnalyseResults(); UpdatePackageState(TasksPackageState.ConnectionError);
UpdatePackageState(TasksPackageState.Done); }else {
} else { //--
try { InitSessionCredentials();
if (Connect()) { if (testingPackage.state.equals(TasksPackageState.Analysis)) {
int ptk_id = (int) ServerCommand(getCheckIfNeedsKillCode(), testingPackage.id); AnalyseResults();
if (ptk_id != Constants.Nan) { UpdatePackageState(TasksPackageState.Done);
Print("package " + testingPackage.id + " NEEDS TO KILL"); } else {
Kill(); try {
UpdatePackageState(TasksPackageState.Aborted); if (Connect()) {
ServerCommand(ServerCode.DeleteObjectByPK, new Pair(TestingPackageToKill.class, ptk_id)); int ptk_id = (int) ServerCommand(getCheckIfNeedsKillCode(), testingPackage.id);
if (ptk_id != Constants.Nan) {
Print("package " + testingPackage.id + " NEEDS TO KILL");
Kill();
UpdatePackageState(TasksPackageState.Aborted);
ServerCommand(ServerCode.DeleteObjectByPK, new Pair(TestingPackageToKill.class, ptk_id));
} else {
Session();
}
} else { } else {
Session(); testingPackage.connectionErrosCount++;
UpdatePackage();
} }
} catch (Exception ex) {
Print("Ошибка сеанса. Соединение будет разорвано.");
Print(ex.getMessage());
Disconnect();
//
testingPackage.connectionErrosCount++;
UpdatePackage();
} finally {
} }
} catch (Exception ex) {
Print("Ошибка сеанса. Соединение будет разорвано.");
Print(ex.getMessage());
Disconnect();
} finally {
} }
} }
//-- //--

View File

@@ -77,6 +77,7 @@ public class TestsDatabase extends SQLiteDatabase {
case Done: case Done:
case Aborted: case Aborted:
case Draft: case Draft:
case ConnectionError:
break; break;
default: default:
packages.add(p); packages.add(p);
@@ -116,6 +117,7 @@ public class TestsDatabase extends SQLiteDatabase {
case Done: case Done:
case Aborted: case Aborted:
case Draft: case Draft:
case ConnectionError:
break; break;
default: default:
//активен. //активен.

View File

@@ -96,7 +96,9 @@ public class UserConnection {
if (sftpChannel != null) sftpChannel.disconnect(); if (sftpChannel != null) sftpChannel.disconnect();
if (shellChannel != null) shellChannel.disconnect(); if (shellChannel != null) shellChannel.disconnect();
if (execChannel != null) execChannel.disconnect(); if (execChannel != null) execChannel.disconnect();
if (session != null) session.disconnect(); if (session != null) {
session.disconnect();
}
//---------------------- //----------------------
sftpChannel = null; sftpChannel = null;
shellChannel = null; shellChannel = null;