mirror of
https://gitlab.com/MrFry/mrfrys-node-server
synced 2025-04-01 20:24:18 +02:00
Threads store their own qdb. It gets updated when new questions are added to reduce message sizes between threads
This commit is contained in:
parent
906ab8ee62
commit
68dcbff846
5 changed files with 56 additions and 141 deletions
|
@ -22,7 +22,7 @@ const dataLockFile = './data/lockData'
|
|||
|
||||
import logger from '../utils/logger'
|
||||
import { createQuestion } from '../utils/classes'
|
||||
import { doALongTask } from './workerPool'
|
||||
import { doALongTask } from './workerPool'
|
||||
import idStats from '../utils/ids'
|
||||
import utils from '../utils/utils'
|
||||
import { SearchResult, addQuestion, getSubjNameWithoutYear } from './classes'
|
||||
|
@ -170,6 +170,7 @@ function processIncomingRequestUsingDb(
|
|||
doALongTask({
|
||||
type: 'work',
|
||||
data: {
|
||||
searchIn: [qdb.index],
|
||||
qdb: qdb.data,
|
||||
question: currentQuestion,
|
||||
subjName: recievedData.subj,
|
||||
|
@ -201,6 +202,8 @@ function processIncomingRequestUsingDb(
|
|||
)
|
||||
logger.DebugLog(currentQuestion, 'actions', 3)
|
||||
addQuestion(qdb.data, sName, currentQuestion)
|
||||
// TODO: check if it really adds it, not only just some clone (questionDbs in api.ts
|
||||
// modifies too)
|
||||
})
|
||||
|
||||
currWrites++
|
||||
|
@ -261,7 +264,7 @@ function processIncomingRequestUsingDb(
|
|||
}
|
||||
|
||||
export function loadJSON(dataFiles: Array<DataFile>): Array<QuestionDb> {
|
||||
return dataFiles.reduce((acc, dataFile) => {
|
||||
return dataFiles.reduce((acc, dataFile, index) => {
|
||||
if (!utils.FileExists(dataFile.path)) {
|
||||
utils.WriteFile(JSON.stringify([]), dataFile.path)
|
||||
}
|
||||
|
@ -269,6 +272,7 @@ export function loadJSON(dataFiles: Array<DataFile>): Array<QuestionDb> {
|
|||
try {
|
||||
acc.push({
|
||||
...dataFile,
|
||||
index: index,
|
||||
data: JSON.parse(utils.ReadFile(dataFile.path)),
|
||||
})
|
||||
} catch (err) {
|
||||
|
@ -302,3 +306,12 @@ export function backupData(questionDbs: Array<QuestionDb>): void {
|
|||
}
|
||||
})
|
||||
}
|
||||
|
||||
export function getQuestionDbsWithoutFunct(
|
||||
questionDbs: Array<QuestionDb> // FIXME: type for dis
|
||||
): Array<any> {
|
||||
return questionDbs.map((qdb) => {
|
||||
const { shouldSave, ...res } = qdb // eslint-disable-line
|
||||
return res
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue