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:
+10
-9
@@ -39,7 +39,7 @@ export function doALongTask(obj: any): Promise<any> {
|
||||
})
|
||||
}
|
||||
|
||||
export function initWorkerPool(): void {
|
||||
export function initWorkerPool(initData: any): void {
|
||||
if (workers && pool) {
|
||||
logger.Log('WORKER AND POOL ALREADY EXISTS', logger.GetColor('redbg'))
|
||||
return
|
||||
@@ -48,7 +48,7 @@ export function initWorkerPool(): void {
|
||||
const factory = {
|
||||
create: function() {
|
||||
const currInd = workers.length
|
||||
const worker = getAWorker(currInd)
|
||||
const worker = getAWorker(currInd, initData)
|
||||
workers.push(worker)
|
||||
return {
|
||||
worker: worker,
|
||||
@@ -71,21 +71,19 @@ export function initWorkerPool(): void {
|
||||
pool = genericPool.createPool(factory, opts)
|
||||
}
|
||||
|
||||
export function msgAll(data: any): void {
|
||||
export function msgAllWorker(data: any): void {
|
||||
workers.forEach((worker) => {
|
||||
worker.postMessage({
|
||||
type: 'update',
|
||||
data,
|
||||
})
|
||||
worker.postMessage(data)
|
||||
})
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
function getAWorker(i) {
|
||||
function getAWorker(i, initData) {
|
||||
const worker = workerTs(workerFile, {
|
||||
workerData: {
|
||||
workerIndex: i,
|
||||
initData: initData,
|
||||
},
|
||||
})
|
||||
|
||||
@@ -105,7 +103,10 @@ function getAWorker(i) {
|
||||
})
|
||||
|
||||
worker.on('exit', (code) => {
|
||||
logger.Log(`[MAIN]: worker #${i} exit code: ${code}`)
|
||||
logger.Log(
|
||||
`[MAIN]: worker #${i} exit code: ${code}`,
|
||||
code === 0 ? logger.GetColor('redbg') : logger.GetColor('green')
|
||||
)
|
||||
})
|
||||
return worker
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user