Browse Source

优化:Office组件运行状态检测

陈精华 5 năm trước cách đây
mục cha
commit
a07c962867

+ 5 - 0
jodconverter-web/pom.xml

@@ -60,6 +60,11 @@
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.7</version>
+        </dependency>
         <!-- REDISSON -->
         <dependency>
             <groupId>org.redisson</groupId>

+ 5 - 4
jodconverter-web/src/main/java/cn/keking/utils/ConverterUtils.java

@@ -2,6 +2,7 @@ package cn.keking.utils;
 
 import com.sun.star.document.UpdateDocMode;
 import cn.keking.extend.ControlDocumentFormatRegistry;
+import org.apache.commons.lang3.StringUtils;
 import org.artofsolving.jodconverter.OfficeDocumentConverter;
 import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
 import org.artofsolving.jodconverter.office.OfficeManager;
@@ -97,8 +98,8 @@ public class ConverterUtils {
                 } else {
                     flag = false;
                 }
-            }else {
-                Process p = Runtime.getRuntime().exec(new String[]{"sh","-c","ps -ef | grep "+processName});
+            } else {
+                Process p = Runtime.getRuntime().exec(new String[]{"sh","-c","ps -ef | grep " + processName});
                 ByteArrayOutputStream baos = new ByteArrayOutputStream();
                 InputStream os = p.getInputStream();
                 byte b[] = new byte[256];
@@ -106,8 +107,8 @@ public class ConverterUtils {
                     baos.write(b);
                 }
                 String s = baos.toString();
-                if (s.indexOf(processName) >= 0) {
-                    String[] cmd ={"sh","-c","killall -9 "+processName};
+                if (StringUtils.ordinalIndexOf(s, processName, 3) > 0) {
+                    String[] cmd ={"sh","-c","kill -15 `ps -ef|grep " + processName + "|awk 'NR==1{print $2}'`"};
                     Runtime.getRuntime().exec(cmd);
                     flag = true;
                 } else {