From f1f7b86fea3f0140a520f98f604f6de0cd303de1 Mon Sep 17 00:00:00 2001 From: mrfry Date: Mon, 5 Oct 2020 08:45:56 +0200 Subject: [PATCH] Added worker to search for stuff in db (ask) #10 --- src/modules/api/api.js | 90 +++++++++++++++++++++-------------------- src/utils/classes.js | 2 - src/utils/searchData.js | 2 +- 3 files changed, 48 insertions(+), 46 deletions(-) diff --git a/src/modules/api/api.js b/src/modules/api/api.js index 338d95d..6610d2e 100644 --- a/src/modules/api/api.js +++ b/src/modules/api/api.js @@ -33,7 +33,7 @@ const utils = require('../../utils/utils.js') const actions = require('../../utils/actions.js') const dbtools = require('../../utils/dbtools.js') const auth = require('../../middlewares/auth.middleware.js') -const { searchData } = require('../../utils/classes.js') +// const { searchData } = require('../../utils/classes.js') // files const searchDataWorkerFile = './src/utils/searchData.js' @@ -763,49 +763,53 @@ function GetApp() { ) } - // const worker = new Worker(searchDataWorkerFile, { - // workerData: { - // data, - // question, - // subj, - // recData, - // }, - // }) - - // worker.on('error', (err) => { - // logger.Log('Search Data Worker error!', logger.GetColor('redbg')) - // console.error(err) - // // TODO: handle error - // }) - - // worker.on('exit', (code) => { - // logger.DebugLog('Search Data exit, code: ' + code, 'actions', 1) - // if (code !== 0) { - // logger.Log( - // 'Search Data Worker error! Exit code is not 0', - // logger.GetColor('redbg') - // ) - // // TODO: handle error - // } - // }) - - // // let result = data.Search(question, subj, recData) - // worker.on('message', (workerMsg) => { - // const result = workerMsg - // res.json({ - // result: result, - // success: true, - // }) - // logger.DebugLog(`Question result length: ${result.length}`, 'ask', 1) - // logger.DebugLog(result, 'ask', 2) - // }) - let result = searchData(data, question, subj, recData) - res.json({ - result: result, - success: true, + const worker = new Worker(searchDataWorkerFile, { + workerData: { + data, + question, + subj, + recData, + }, }) - logger.DebugLog(`Question result length: ${result.length}`, 'ask', 1) - logger.DebugLog(result, 'ask', 2) + + worker.on('error', (err) => { + logger.Log('Search Data Worker error!', logger.GetColor('redbg')) + console.error(err) + res.json({ + message: `There was an error processing the question: ${err.message}`, + result: [], + recievedData: JSON.stringify(req.query), + success: false, + }) + }) + + worker.on('exit', (code) => { + logger.DebugLog('Search Data exit, code: ' + code, 'actions', 1) + if (code !== 0) { + logger.Log( + 'Search Data Worker error! Exit code is not 0', + logger.GetColor('redbg') + ) + } + }) + + worker.on('message', (workerMsg) => { + const result = workerMsg + res.json({ + result: result, + success: true, + }) + logger.DebugLog(`Question result length: ${result.length}`, 'ask', 1) + logger.DebugLog(result, 'ask', 2) + }) + + // let result = data.Search(question, subj, recData) + // res.json({ + // result: result, + // success: true, + // }) + // logger.DebugLog(`Question result length: ${result.length}`, 'ask', 1) + // logger.DebugLog(result, 'ask', 2) } else { logger.DebugLog(`Invalid question`, 'ask', 1) res.json({ diff --git a/src/utils/classes.js b/src/utils/classes.js index 1ebe09c..f3309e5 100755 --- a/src/utils/classes.js +++ b/src/utils/classes.js @@ -299,7 +299,6 @@ function searchQuestion(subj, question, questionData, subjName) { } }) - // TODO: check if sorting is correct! result = result.sort((q1, q2) => { return q1.match < q2.match }) @@ -413,7 +412,6 @@ function searchData(data, question, subjName, questionData) { } } - // TODO: check if sorting is correct! result = result.sort((q1, q2) => { return q1.match < q2.match }) diff --git a/src/utils/searchData.js b/src/utils/searchData.js index 83991e4..41b5b12 100644 --- a/src/utils/searchData.js +++ b/src/utils/searchData.js @@ -1,6 +1,6 @@ const { isMainThread, parentPort, workerData } = require('worker_threads') const logger = require('../utils/logger.js') -const { searchData } = require('../../utils/classes.js') +const { searchData } = require('./classes.js') if (!isMainThread) { logger.DebugLog('Starting worker thread', 'searchdata', 1)