This is an automated email from the ASF dual-hosted git repository.

sergeykamov pushed a commit to branch NLPCRAFT-111
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git


The following commit(s) were added to refs/heads/NLPCRAFT-111 by this push:
     new d8408ca  WIP.
d8408ca is described below

commit d8408ca58649048602d8569298db447edcb66fab
Author: Sergey Kamov <[email protected]>
AuthorDate: Sat Jan 23 14:39:13 2021 +0300

    WIP.
---
 .../nlpcraft/common/pool/NCThreadPoolManager.scala | 12 ++--
 .../sqlgen/impl/NCSqlModelGeneratorImpl.scala      |  2 +-
 .../probe/mgrs/nlp/NCProbeEnrichmentManager.scala  | 25 +++-----
 .../server/nlp/core/spacy/NCSpaCyNerEnricher.scala | 10 ++--
 .../nlpcraft/server/rest/NCRestManager.scala       |  6 +-
 .../server/sugsyn/NCSuggestSynonymManager.scala    | 70 +++++++++-------------
 6 files changed, 52 insertions(+), 73 deletions(-)

diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/pool/NCThreadPoolManager.scala
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/pool/NCThreadPoolManager.scala
index 37cc9b6..b8ffbba 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/pool/NCThreadPoolManager.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/pool/NCThreadPoolManager.scala
@@ -89,21 +89,25 @@ object NCThreadPoolManager extends NCService {
                             new LinkedBlockingQueue[Runnable]
                         )
 
-                        logger.info(s"Custom executor service created [ " +
+                        logger.info(
+                            s"Custom executor service created [ " +
                             s"name=$name, " +
                             s"module=${Config.moduleName}, " +
                             s"corePoolSize=${pCfg.corePoolSize}, " +
                             s"maximumPoolSize=${pCfg.maximumPoolSize}, " +
                             s"keepAliveTime=${pCfg.keepAliveTime}" +
-                        "]")
+                            "]"
+                        )
 
                         Holder(ExecutionContext.fromExecutor(p), Some(p))
 
                     case None ⇒
-                        logger.info(s"Default system executor service used [ " 
+
+                        logger.info(
+                            s"Default system executor service used [ " +
                             s"name=$name, " +
                             s"module=${Config.moduleName}" +
-                        "]")
+                            "]"
+                        )
 
                         Holder(ExecutionContext.Implicits.global, None)
                 }
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlModelGeneratorImpl.scala
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlModelGeneratorImpl.scala
index 0b66262..b7c685d 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlModelGeneratorImpl.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlModelGeneratorImpl.scala
@@ -57,7 +57,7 @@ object NCSqlModelGeneratorImpl {
         val nameLc: String
         val elmNameLc: String
 
-        private val nameWs = U.normalize(elmNameLc.replaceAll("_"," ")," ")
+        private lazy val nameWs = U.normalize(elmNameLc.replaceAll("_"," ")," 
")
 
         lazy val synonym =
             if (elmNameLc == nameWs)
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
index 1cd6fa7..62291ca 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
@@ -17,12 +17,6 @@
 
 package org.apache.nlpcraft.probe.mgrs.nlp
 
-import java.io.Serializable
-import java.util
-import java.util.concurrent._
-import java.util.function.Predicate
-import java.util.{Date, Objects}
-
 import io.opencensus.trace.{Span, Status}
 import org.apache.nlpcraft.common.NCErrorCodes._
 import org.apache.nlpcraft.common._
@@ -30,6 +24,7 @@ import org.apache.nlpcraft.common.ascii.NCAsciiTable
 import org.apache.nlpcraft.common.config.NCConfigurable
 import org.apache.nlpcraft.common.debug.NCLogHolder
 import org.apache.nlpcraft.common.nlp.{NCNlpSentence, NCNlpSentenceNote}
+import org.apache.nlpcraft.common.pool.NCThreadPoolContext
 import org.apache.nlpcraft.model._
 import org.apache.nlpcraft.model.impl.NCTokenLogger
 import org.apache.nlpcraft.model.intent.impl.NCIntentSolverInput
@@ -50,14 +45,17 @@ import org.apache.nlpcraft.probe.mgrs.nlp.impl._
 import org.apache.nlpcraft.probe.mgrs.nlp.validate._
 import org.apache.nlpcraft.probe.mgrs.{NCProbeMessage, NCProbeVariants}
 
+import java.io.Serializable
+import java.util
+import java.util.function.Predicate
+import java.util.{Date, Objects}
 import scala.collection.JavaConverters._
 import scala.collection.{Seq, _}
-import scala.concurrent.{ExecutionContext, ExecutionContextExecutor}
 
 /**
   * Probe enrichment manager.
   */
-object NCProbeEnrichmentManager extends NCService with NCOpenCensusModelStats {
+object NCProbeEnrichmentManager extends NCService with NCOpenCensusModelStats 
with NCThreadPoolContext {
     private final val MAX_NESTED_TOKENS = 32
 
     // Embedded probe Java callback function.
@@ -66,8 +64,6 @@ object NCProbeEnrichmentManager extends NCService with 
NCOpenCensusModelStats {
     private final val mux = new Object()
 
     @volatile private var embeddedCbs: mutable.Set[EMBEDDED_CB] = _
-    @volatile private var pool: ExecutorService = _
-    @volatile private var executor: ExecutionContextExecutor = _
 
     private object Config extends NCConfigurable {
         final private val pre = "nlpcraft.probe"
@@ -95,9 +91,6 @@ object NCProbeEnrichmentManager extends NCService with 
NCOpenCensusModelStats {
 
         embeddedCbs = mutable.HashSet.empty[EMBEDDED_CB]
 
-        pool = U.mkThreadPool("probe-enrichment")
-        executor = ExecutionContext.fromExecutor(pool)
-
         ackStarted()
     }
 
@@ -113,10 +106,6 @@ object NCProbeEnrichmentManager extends NCService with 
NCOpenCensusModelStats {
                 embeddedCbs.clear()
         }
 
-        U.shutdownPool(pool)
-        executor = null
-        pool = null
-
         ackStopped()
     }
 
@@ -727,6 +716,6 @@ object NCProbeEnrichmentManager extends NCService with 
NCOpenCensusModelStats {
                 finally
                     onFinish()
             }
-        )(executor)
+        )
     }
 }
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/core/spacy/NCSpaCyNerEnricher.scala
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/core/spacy/NCSpaCyNerEnricher.scala
index 70060b6..6acbcbf 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/core/spacy/NCSpaCyNerEnricher.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/core/spacy/NCSpaCyNerEnricher.scala
@@ -17,10 +17,6 @@
 
 package org.apache.nlpcraft.server.nlp.core.spacy
 
-import java.net.URLEncoder
-import java.util
-import java.util.concurrent.TimeUnit._
-
 import akka.actor.ActorSystem
 import akka.http.scaladsl.Http
 import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._
@@ -37,8 +33,11 @@ import org.apache.nlpcraft.server.nlp.core.NCNlpNerEnricher
 import spray.json.DefaultJsonProtocol._
 import spray.json.RootJsonFormat
 
+import java.net.URLEncoder
+import java.util
+import java.util.concurrent.TimeUnit._
 import scala.concurrent.duration.Duration
-import scala.concurrent.{Await, Awaitable, ExecutionContextExecutor, 
TimeoutException}
+import scala.concurrent.{Await, Awaitable, TimeoutException}
 
 /**
   * spaCy REST proxy server NER enricher.
@@ -48,7 +47,6 @@ object NCSpaCyNerEnricher extends NCService with 
NCNlpNerEnricher with NCIgniteI
 
     private implicit final val SYSTEM: ActorSystem = ActorSystem("spacy-ner")
     private implicit final val MATERIALIZER: Materializer = 
Materializer.createMaterializer(SYSTEM)
-    private implicit final val EXEC_CTX: ExecutionContextExecutor = 
SYSTEM.dispatcher
 
     private implicit val fmt: RootJsonFormat[SpacySpan] = 
jsonFormat7(SpacySpan)
     
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCRestManager.scala 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCRestManager.scala
index fa77d2b..b665e43 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCRestManager.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCRestManager.scala
@@ -23,18 +23,18 @@ import akka.http.scaladsl.server._
 import akka.stream.Materializer
 import io.opencensus.trace.Span
 import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.pool.NCThreadPoolContext
 import org.apache.nlpcraft.common.{NCService, _}
 
-import scala.concurrent.{ExecutionContextExecutor, Future}
+import scala.concurrent.Future
 import scala.util.{Failure, Success}
 
 /**
   * REST manager.
   */
-object NCRestManager extends NCService {
+object NCRestManager extends NCService with NCThreadPoolContext {
     private implicit val SYSTEM: ActorSystem = ActorSystem("server-rest")
     private implicit val MATERIALIZER: Materializer = 
Materializer.createMaterializer(SYSTEM)
-    private implicit val EXEC_CTX: ExecutionContextExecutor = SYSTEM.dispatcher
 
     @volatile private var bindFut: Future[Http.ServerBinding] = _
 
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sugsyn/NCSuggestSynonymManager.scala
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sugsyn/NCSuggestSynonymManager.scala
index 28cb645..a0bb32d 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sugsyn/NCSuggestSynonymManager.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sugsyn/NCSuggestSynonymManager.scala
@@ -22,24 +22,24 @@ import com.google.gson.reflect.TypeToken
 import io.opencensus.trace.Span
 import org.apache.http.HttpResponse
 import org.apache.http.client.ResponseHandler
+import org.apache.http.client.methods.HttpPost
+import org.apache.http.entity.StringEntity
+import org.apache.http.impl.client.HttpClients
 import org.apache.http.util.EntityUtils
 import org.apache.nlpcraft.common._
 import org.apache.nlpcraft.common.config.NCConfigurable
+import org.apache.nlpcraft.common.makro.NCMacroParser
 import org.apache.nlpcraft.common.nlp.core.NCNlpPorterStemmer
+import org.apache.nlpcraft.common.pool.NCThreadPoolContext
 import org.apache.nlpcraft.server.probe.NCProbeManager
 
+import java.util
+import java.util.concurrent._
+import java.util.concurrent.atomic.{AtomicInteger, AtomicReference}
 import scala.collection.JavaConverters._
 import scala.collection.{Seq, mutable}
-import scala.concurrent.{ExecutionContext, ExecutionContextExecutor, Future, 
Promise}
+import scala.concurrent.{Future, Promise}
 import scala.util.{Failure, Success}
-import java.util
-import java.util.concurrent.atomic.{AtomicInteger, AtomicReference}
-import java.util.concurrent._
-import org.apache.http.client.methods.HttpPost
-import org.apache.http.entity.StringEntity
-import org.apache.http.impl.client.HttpClients
-import org.apache.nlpcraft.common.makro.NCMacroParser
-import org.apache.nlpcraft.common.pool.NCThreadPoolContext
 
 /**
  * Synonym suggestion manager.
@@ -50,9 +50,6 @@ object NCSuggestSynonymManager extends NCService with 
NCThreadPoolContext {
     private final val BATCH_SIZE = 20
     private final val DFLT_MIN_SCORE = 0.0
 
-    @volatile private var pool: ExecutorService = _
-    @volatile private var executor: ExecutionContextExecutor = _
-
     // For warnings.
     private final val MIN_CNT_INTENT = 5
     private final val MIN_CNT_MODEL = 20
@@ -114,34 +111,6 @@ object NCSuggestSynonymManager extends NCService with 
NCThreadPoolContext {
 
     /**
      *
-     * @param parent Optional parent span.
-     * @return
-     */
-    override def start(parent: Span): NCService = startScopedSpan("start", 
parent) { _ ⇒
-        ackStarting()
-
-        pool = Executors.newCachedThreadPool()
-        executor = ExecutionContext.fromExecutor(pool)
-
-        ackStarted()
-    }
-
-    /**
-     *
-     * @param parent Optional parent span.
-     */
-    override def stop(parent: Span): Unit = startScopedSpan("stop", parent) { 
_ ⇒
-        ackStopping()
-
-        U.shutdownPool(pool)
-        pool = null
-        executor = null
-
-        ackStopped()
-    }
-
-    /**
-     *
      * @param seq1
      * @param seq2
      */
@@ -461,8 +430,27 @@ object NCSuggestSynonymManager extends NCService with 
NCThreadPoolContext {
                             promise.failure(e)
                     }
                 case Failure(e) ⇒ promise.failure(e)
-            }(executor)
+            }
 
             promise.future
         }
+
+    /**
+     *
+     * @param parent Optional parent span.
+     * @return
+     */
+    override def start(parent: Span): NCService = startScopedSpan("start", 
parent) { _ ⇒
+        ackStarting()
+        ackStarted()
+    }
+
+    /**
+     *
+     * @param parent Optional parent span.
+     */
+    override def stop(parent: Span): Unit = startScopedSpan("stop", parent) { 
_ ⇒
+        ackStopping()
+        ackStopped()
+    }
 }
\ No newline at end of file

Reply via email to