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