From 60239278774c33bbfef150702166d40e4d8db0ba Mon Sep 17 00:00:00 2001 From: Sylvain Perron Date: Wed, 6 Feb 2019 21:13:58 -0500 Subject: [PATCH] fix(nlu): queue multiple sync calls --- modules/nlu/src/backend/engine.ts | 10 ++++++++++ .../nlu/src/backend/pipelines/intents/ft_classifier.ts | 4 ---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/modules/nlu/src/backend/engine.ts b/modules/nlu/src/backend/engine.ts index 4a100466080..818a878dad9 100644 --- a/modules/nlu/src/backend/engine.ts +++ b/modules/nlu/src/backend/engine.ts @@ -37,6 +37,7 @@ export default class ScopedEngine { } private _isSyncing: boolean + private _isSyncingTwice: boolean private _autoSyncInterval: number = 0 private _autoSyncTimer: NodeJS.Timer @@ -75,6 +76,11 @@ export default class ScopedEngine { } async sync(): Promise { + if (this._isSyncing) { + this._isSyncingTwice = true + return + } + try { this._isSyncing = true const intents = await this.storage.getIntents() @@ -96,6 +102,10 @@ export default class ScopedEngine { this._preloaded = true } finally { this._isSyncing = false + if (this._isSyncingTwice) { + this._isSyncingTwice = false + this.sync() // This floating promise is voluntary + } } } diff --git a/modules/nlu/src/backend/pipelines/intents/ft_classifier.ts b/modules/nlu/src/backend/pipelines/intents/ft_classifier.ts index d06843f1749..09846fc6b30 100644 --- a/modules/nlu/src/backend/pipelines/intents/ft_classifier.ts +++ b/modules/nlu/src/backend/pipelines/intents/ft_classifier.ts @@ -14,8 +14,6 @@ interface TrainSet { export default class FastTextClassifier implements IntentClassifier { private _modelsByContext: { [key: string]: sdk.MLToolkit.FastText.Model } = {} - model: sdk.MLToolkit.FastText.Model - constructor(private toolkit: typeof sdk.MLToolkit, private readonly logger: sdk.Logger) {} private sanitizeText(text: string): string { @@ -64,8 +62,6 @@ export default class FastTextClassifier implements IntentClassifier { lr: 0.8 }) - this.model = ft - return { ft, data: readFileSync(modelFn) } }