Browse Source

[Improvement] Optimized close of IO (#5336)

* [improvement]modify all methods that refer to LogClientService in the code.

* delete unused code

* [Improvement] Optimized close of IO
pull/3/MERGE
luoyuan 4 years ago committed by GitHub
parent
commit
e57ee658e8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectServiceImpl.java
  2. 9
      dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/PropertyUtils.java
  3. 24
      dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/log/LoggerRequestProcessor.java

1
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectServiceImpl.java

@ -24,7 +24,6 @@ import org.apache.dolphinscheduler.api.service.ProjectService;
import org.apache.dolphinscheduler.api.utils.PageInfo; import org.apache.dolphinscheduler.api.utils.PageInfo;
import org.apache.dolphinscheduler.common.Constants; import org.apache.dolphinscheduler.common.Constants;
import org.apache.dolphinscheduler.common.enums.UserType; import org.apache.dolphinscheduler.common.enums.UserType;
import org.apache.dolphinscheduler.common.utils.CollectionUtils;
import org.apache.dolphinscheduler.dao.entity.ProcessDefinition; import org.apache.dolphinscheduler.dao.entity.ProcessDefinition;
import org.apache.dolphinscheduler.dao.entity.Project; import org.apache.dolphinscheduler.dao.entity.Project;
import org.apache.dolphinscheduler.dao.entity.ProjectUser; import org.apache.dolphinscheduler.dao.entity.ProjectUser;

9
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/PropertyUtils.java

@ -57,19 +57,12 @@ public class PropertyUtils {
*/ */
public static synchronized void loadPropertyFile(String... propertyFiles) { public static synchronized void loadPropertyFile(String... propertyFiles) {
for (String fileName : propertyFiles) { for (String fileName : propertyFiles) {
InputStream fis = null; try (InputStream fis = PropertyUtils.class.getResourceAsStream(fileName);) {
try {
fis = PropertyUtils.class.getResourceAsStream(fileName);
properties.load(fis); properties.load(fis);
} catch (IOException e) { } catch (IOException e) {
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
if (fis != null) {
IOUtils.closeQuietly(fis);
}
System.exit(1); System.exit(1);
} finally {
IOUtils.closeQuietly(fis);
} }
} }
} }

24
dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/log/LoggerRequestProcessor.java

@ -17,7 +17,6 @@
package org.apache.dolphinscheduler.server.log; package org.apache.dolphinscheduler.server.log;
import org.apache.dolphinscheduler.common.utils.IOUtils;
import org.apache.dolphinscheduler.common.utils.JSONUtils; import org.apache.dolphinscheduler.common.utils.JSONUtils;
import org.apache.dolphinscheduler.common.utils.LoggerUtils; import org.apache.dolphinscheduler.common.utils.LoggerUtils;
import org.apache.dolphinscheduler.remote.command.Command; import org.apache.dolphinscheduler.remote.command.Command;
@ -44,9 +43,6 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
@ -56,7 +52,7 @@ import org.slf4j.LoggerFactory;
import io.netty.channel.Channel; import io.netty.channel.Channel;
/** /**
* logger request process logic * logger request process logic
*/ */
public class LoggerRequestProcessor implements NettyRequestProcessor { public class LoggerRequestProcessor implements NettyRequestProcessor {
@ -139,11 +135,8 @@ public class LoggerRequestProcessor implements NettyRequestProcessor {
* @throws Exception exception * @throws Exception exception
*/ */
private byte[] getFileContentBytes(String filePath) { private byte[] getFileContentBytes(String filePath) {
InputStream in = null; try (InputStream in = new FileInputStream(filePath);
ByteArrayOutputStream bos = null; ByteArrayOutputStream bos = new ByteArrayOutputStream()) {
try {
in = new FileInputStream(filePath);
bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024]; byte[] buf = new byte[1024];
int len; int len;
while ((len = in.read(buf)) != -1) { while ((len = in.read(buf)) != -1) {
@ -151,10 +144,7 @@ public class LoggerRequestProcessor implements NettyRequestProcessor {
} }
return bos.toByteArray(); return bos.toByteArray();
} catch (IOException e) { } catch (IOException e) {
logger.error("get file bytes error",e); logger.error("get file bytes error", e);
} finally {
IOUtils.closeQuietly(bos);
IOUtils.closeQuietly(in);
} }
return new byte[0]; return new byte[0];
} }
@ -168,14 +158,14 @@ public class LoggerRequestProcessor implements NettyRequestProcessor {
* @return part file content * @return part file content
*/ */
private List<String> readPartFileContent(String filePath, private List<String> readPartFileContent(String filePath,
int skipLine, int skipLine,
int limit) { int limit) {
File file = new File(filePath); File file = new File(filePath);
if (file.exists() && file.isFile()) { if (file.exists() && file.isFile()) {
try (Stream<String> stream = Files.lines(Paths.get(filePath))) { try (Stream<String> stream = Files.lines(Paths.get(filePath))) {
return stream.skip(skipLine).limit(limit).collect(Collectors.toList()); return stream.skip(skipLine).limit(limit).collect(Collectors.toList());
} catch (IOException e) { } catch (IOException e) {
logger.error("read file error",e); logger.error("read file error", e);
} }
} else { } else {
logger.info("file path: {} not exists", filePath); logger.info("file path: {} not exists", filePath);

Loading…
Cancel
Save