浏览代码

fix: 修复入库失败

weijianghai 2 年之前
父节点
当前提交
36d3e83a39

+ 1 - 0
src/main/java/com/nokia/common/gpload/GploadUtil.java

@@ -64,6 +64,7 @@ public class GploadUtil {
             result.setTaskStatus(false);
             result.setMessage(e.getMessage());
         } finally {
+            log.debug("gpload的结果为: {}", result);
             XxlJobHelper.log("gpload的结果为: {}", result);
             destroy();
         }

+ 9 - 0
src/main/java/com/nokia/common/ssh/SSHUtil.java

@@ -147,11 +147,13 @@ public class SSHUtil {
             inputStream = channel.getInputStream();
             channel.connect();
             if (checkAck(inputStream) != 0) {
+                log.error("scpTo 执行失败");
                 XxlJobHelper.handleFail("scpTo 执行失败");
                 return false;
             }
             File sourceFile = new File(sourceFilePath);
             if (sourceFile.isDirectory()) {
+                log.error("sourceFilePath 必须是文件");
                 XxlJobHelper.handleFail("sourceFilePath 必须是文件");
                 return false;
             }
@@ -160,6 +162,7 @@ public class SSHUtil {
             outputStream.write(command.getBytes());
             outputStream.flush();
             if (checkAck(inputStream) != 0) {
+                log.error("scpTo 执行失败");
                 XxlJobHelper.handleFail("scpTo 执行失败");
                 return false;
             }
@@ -186,6 +189,7 @@ public class SSHUtil {
      */
     public boolean scpFrom(String sourceFilePath, String targetPath) throws JSchException, IOException, SSHUtilException {
         try {
+            log.debug(sourceFilePath);
             XxlJobHelper.log(sourceFilePath);
             session = getConnectSession();
             // scp内置了两个参数 -t 和 -f ,这两个参数是隐藏的,不会被用户显式提供,
@@ -237,6 +241,7 @@ public class SSHUtil {
                     break;
                 }
             }
+            log.debug("filesize={}, file={}", filesize, file);
             XxlJobHelper.log("filesize={}, file={}", filesize, file);
             // 发送 '0'
             buf[0] = 0;
@@ -245,6 +250,7 @@ public class SSHUtil {
             // 如果目标是目录,则需要加上文件名
             File target = new File(targetPath);
             if (target.isDirectory()) {
+                log.debug("{} 是目录,需要添加文件名", target.getAbsolutePath());
                 XxlJobHelper.log("{} 是目录,需要添加文件名", target.getAbsolutePath());
                 target = new File(targetPath + File.separator + file);
             }
@@ -274,6 +280,7 @@ public class SSHUtil {
             buf[0] = 0;
             outputStream.write(buf, 0, 1);
             outputStream.flush();
+            log.debug("scp from {}@{}:{}{} to {} 完成", targetServer.getUser(), targetServer.getHost(), targetServer.getPort(), sourceFilePath, target.getAbsolutePath());
             XxlJobHelper.log("scp from {}@{}:{}{} to {} 完成", targetServer.getUser(), targetServer.getHost(), targetServer.getPort(), sourceFilePath, target.getAbsolutePath());
             return true;
         } finally {
@@ -291,6 +298,7 @@ public class SSHUtil {
         properties.put("StrictHostKeyChecking", "no");
         session.setConfig(properties);
         session.connect();
+        log.debug("已连接到{}@{}:{}", targetServer.getUser(), targetServer.getHost(), targetServer.getPort());
         XxlJobHelper.log("已连接到{}@{}:{}", targetServer.getUser(), targetServer.getHost(), targetServer.getPort());
         return session;
     }
@@ -345,6 +353,7 @@ public class SSHUtil {
                 c = in.read();
                 sb.append((char) c);
             } while (c != '\n');
+            log.debug("checkAck发现错误消息: ack={}-msg={}", b, sb);
             XxlJobHelper.log("checkAck发现错误消息: ack={}-msg={}", b, sb);
             if (b == 1 && sb.toString().endsWith("No such file or directory")) {
                 throw new NoSuchFileException(sb.toString());

+ 5 - 1
src/main/java/com/nokia/pm_interface_5g/task/FiveGPmTask.java

@@ -64,7 +64,7 @@ public class FiveGPmTask {
      */
 //    @Scheduled(cron = "0 */10 * * * ?")
     @XxlJob("exeHandPm5G")
-    public void cronTask() throws JSchException, SSHUtilException, IOException, SftpException {
+    public synchronized void cronTask() throws JSchException, SSHUtilException, IOException, SftpException {
         // 创建文件夹
         Files.createDirectories(Paths.get(downloadTargetDir));
         Files.createDirectories(Paths.get(distinctTargetDir));
@@ -75,6 +75,7 @@ public class FiveGPmTask {
             return;
         }
 
+        log.debug("扫描到的文件: {}", list);
         XxlJobHelper.log("扫描到的文件: {}", list);
         for (String t : list) {
             singleTask(t);
@@ -107,6 +108,7 @@ public class FiveGPmTask {
         String targetPath = targetFile.getAbsolutePath();
         boolean b = sshUtil.scpFrom(sourceFilePath, targetPath);
         if (b) {
+            log.debug("文件 {} 下载成功...", targetPath);
             XxlJobHelper.log("文件 {} 下载成功...", targetPath);
             //删除远程文件
             sshUtil.delete(sourceFilePath);
@@ -144,10 +146,12 @@ public class FiveGPmTask {
         String gploadCommand = "sh /data1/pm_5g/gpload/pm_nr_gpload.sh " + filename;
         GploadResult gpload = GploadUtil.gpload(gploadCommand);
         if (Boolean.TRUE.equals(gpload.getTaskStatus())) {
+            log.debug("gpload完成: {}", gpload);
             XxlJobHelper.log("gpload完成: {}", gpload);
             // 删除重排文件
             Files.deleteIfExists(Paths.get(distinctTargetDir + filename));
         } else {
+            log.error("gpload 失败: {}", gpload.getMessage());
             XxlJobHelper.handleFail("gpload 失败: " + gpload.getMessage());
         }
     }