Kaynağa Gözat

fix: 修复构建控制台输出太大的问题

wanghongkai 6 yıl önce
ebeveyn
işleme
1eda881b08

+ 15 - 2
src/main/java/com/moekr/moocoder/logic/service/impl/BuildManager.java

@@ -56,7 +56,13 @@ public class BuildManager {
 				record.setConsoleOutput("系统内部发生未知异常,请尝试重新提交!");
 				record.setStatus(BuildStatus.FAILURE);
 			} finally {
-				recordDAO.save(record);
+				try {
+					recordDAO.save(record);
+				} catch (Exception saveException) {
+					log.error("触发构建保存" + record.getId() + "时发生异常" + ToolKit.format(saveException));
+					record.setConsoleOutput("系统内部发生未知异常,请尝试重新提交!");
+					record.setStatus(BuildStatus.FAILURE);
+				}
 			}
 		}
 		return false;
@@ -79,7 +85,14 @@ public class BuildManager {
 			record.setConsoleOutput("系统内部发生未知异常,请尝试重新提交!");
 			record.setStatus(BuildStatus.FAILURE);
 		} finally {
-			recordDAO.save(record);
+			try {
+				recordDAO.save(record);
+			} catch (Exception saveException) {
+				log.error("构建保存" + record.getId() + "时发生异常" + ToolKit.format(saveException));
+				record.setConsoleOutput(record.getConsoleOutput().substring(0, Math.min(record.getConsoleOutput().length(), 1024 * 1024 * 10)));
+				record.setStatus(record.getStatus());
+				recordDAO.save(record);
+			}
 		}
 		return true;
 	}