Browse Source

Merge branch 'master' of https://github.com/xuxueli/xxl-job

xuxueli 6 years ago
parent
commit
cf1768d20e

+ 1 - 0
doc/XXL-JOB官方文档.md

@@ -1212,6 +1212,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
 - 11、任务回调结果优化,支持展示在Rolling log中,方便问题排查;
 - 12、脚本任务异常Log输出优化;
 - 13、任务线程停止变量修饰符优化;
+- 14、脚本任务Log文件流关闭优化;
 
 
 ### TODO LIST

+ 12 - 14
xxl-job-core/src/main/java/com/xxl/job/core/log/XxlJobFileAppender.java

@@ -115,23 +115,21 @@ public class XxlJobFileAppender {
 		appendLog += "\r\n";
 		
 		// append file content
+		FileOutputStream fos = null;
 		try {
-			FileOutputStream fos = null;
-			try {
-				fos = new FileOutputStream(logFile, true);
-				fos.write(appendLog.getBytes("utf-8"));
-				fos.flush();
-			} finally {
-				if (fos != null) {
-					try {
-						fos.close();
-					} catch (IOException e) {
-						logger.error(e.getMessage(), e);
-					}
-				}
-			} 
+			fos = new FileOutputStream(logFile, true);
+			fos.write(appendLog.getBytes("utf-8"));
+			fos.flush();
 		} catch (Exception e) {
 			logger.error(e.getMessage(), e);
+		} finally {
+			if (fos != null) {
+				try {
+					fos.close();
+				} catch (IOException e) {
+					logger.error(e.getMessage(), e);
+				}
+			}
 		}
 		
 	}

+ 13 - 1
xxl-job-core/src/main/java/com/xxl/job/core/util/ScriptUtil.java

@@ -60,7 +60,10 @@ public class ScriptUtil {
         // 标准输出:print (null if watchdog timeout)
         // 错误输出:logging + 异常 (still exists if watchdog timeout)
         // 标准输入
-        try (FileOutputStream fileOutputStream = new FileOutputStream(logFile, true)) {
+
+        FileOutputStream fileOutputStream = null;   //
+        try {
+            fileOutputStream = new FileOutputStream(logFile, true);
             PumpStreamHandler streamHandler = new PumpStreamHandler(fileOutputStream, fileOutputStream, null);
 
             // command
@@ -79,6 +82,15 @@ public class ScriptUtil {
         } catch (Exception e) {
             XxlJobLogger.log(e);
             return -1;
+        } finally {
+            if (fileOutputStream != null) {
+                try {
+                    fileOutputStream.close();
+                } catch (IOException e) {
+                    XxlJobLogger.log(e);
+                }
+
+            }
         }
     }