From a7292702b841b04fb73702fcdd8ce68f3d150983 Mon Sep 17 00:00:00 2001 From: leejiwon1125 Date: Thu, 30 Nov 2023 20:20:27 +0900 Subject: [PATCH 1/2] fix: use newFixedThreadPool --- worker/src/main/scala/WorkerService.scala | 29 ++++++++++++++++------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/worker/src/main/scala/WorkerService.scala b/worker/src/main/scala/WorkerService.scala index a4cc259..db7402f 100644 --- a/worker/src/main/scala/WorkerService.scala +++ b/worker/src/main/scala/WorkerService.scala @@ -71,7 +71,7 @@ class WorkerService( implicit val executionContext: ExecutionContextExecutor = scala.concurrent.ExecutionContext.fromExecutor( java.util.concurrent.Executors - .newCachedThreadPool() + .newFixedThreadPool(15) ) def sorted(path: Path) = Future { @@ -84,7 +84,9 @@ class WorkerService( Future { try { logger.info(s"[WorkerServer] Sort ($request)") - + logger.info( + s"[WorkerServer] thread number in sort1 : ${java.lang.Thread.activeCount()}" + ) Await.result( Future.traverse(inputFiles.toList)(sorted)( GenericBuildFrom[File, File], @@ -92,7 +94,9 @@ class WorkerService( ), scala.concurrent.duration.Duration.Inf ) - + logger.info( + s"[WorkerServer] thread number in sort2 : ${java.lang.Thread.activeCount()}" + ) logger.info("[WorkerServer] Sorted") promise.success(new SortReply()) @@ -114,7 +118,7 @@ class WorkerService( implicit val executionContext: ExecutionContextExecutor = scala.concurrent.ExecutionContext.fromExecutor( java.util.concurrent.Executors - .newCachedThreadPool() + .newFixedThreadPool(15) ) val workers: Seq[WorkerMetadata] = request.workers @@ -154,7 +158,9 @@ class WorkerService( Future { try { logger.info(s"[WorkerServer] Partition ($request)") - + logger.info( + s"[WorkerServer] thread number in partition1 : ${java.lang.Thread.activeCount()}" + ) Await.result( Future.traverse(inputFiles.toList)(partition)( GenericBuildFrom[File, Seq[File]], @@ -162,7 +168,9 @@ class WorkerService( ), scala.concurrent.duration.Duration.Inf ) - + logger.info( + s"[WorkerServer] thread number in partition2 : ${java.lang.Thread.activeCount()}" + ) logger.info("[WorkerServer] Partitioned") promise.success(new PartitionReply()) @@ -182,7 +190,7 @@ class WorkerService( implicit val executionContext: ExecutionContextExecutor = scala.concurrent.ExecutionContext.fromExecutor( java.util.concurrent.Executors - .newCachedThreadPool() + .newFixedThreadPool(15) ) val workers: Seq[WorkerMetadata] = request.workers @@ -210,7 +218,9 @@ class WorkerService( .map(_._2) logger.info(s"[WorkerServer] Sending $chunk to $targetClients") - + logger.info( + s"[WorkerServer] thread number in exchange before : ${java.lang.Thread.activeCount()}" + ) Await.result( Future.traverse(targetClients)(_.saveBlock(chunk))( GenericBuildFrom[WorkerClient, SaveBlockReply], @@ -218,6 +228,9 @@ class WorkerService( ), scala.concurrent.duration.Duration.Inf ) + logger.info( + s"[WorkerServer] thread number in exchange end : ${java.lang.Thread.activeCount()}" + ) }) }) From 51330f332603aba52d9a9b080b9040e409b6b28b Mon Sep 17 00:00:00 2001 From: leejiwon1125 Date: Thu, 30 Nov 2023 21:03:05 +0900 Subject: [PATCH 2/2] feat: write logs to files --- log4j2.properties | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/log4j2.properties b/log4j2.properties index 6687ea3..0f54042 100644 --- a/log4j2.properties +++ b/log4j2.properties @@ -2,7 +2,7 @@ status = warn # Name of the configuration -name = ConsoleLogConfigDemo +name = ConsoleFileLogConfigDemo # Console appender configuration appender.console.type = Console @@ -10,8 +10,16 @@ appender.console.name = consoleLogger appender.console.layout.type = PatternLayout appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n +# File appender configuration +appender.file.type = File +appender.file.name = fileLogger +appender.file.fileName = logs/app.log +appender.file.layout.type = PatternLayout +appender.file.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n + # Root logger level rootLogger.level = info -# Root logger referring to console appender +# Root logger referring to both console and file appenders rootLogger.appenderRef.stdout.ref = consoleLogger +rootLogger.appenderRef.file.ref = fileLogger