mirror of
https://gitlab.com/MrFry/mrfrys-node-server
synced 2026-04-28 11:17:38 +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:
+15
-2
@@ -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
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user