Changed console logs to debuglog, fixed msgAll locking workers

This commit is contained in:
mrfry 2021-04-21 13:14:21 +02:00
parent b1dcb3b018
commit 7571ffe271
2 changed files with 21 additions and 9 deletions

View file

@ -730,14 +730,19 @@ if (!isMainThread) {
} }
logger.DebugLog(`Worker new question ${workerIndex}`, 'worker update', 1) logger.DebugLog(`Worker new question ${workerIndex}`, 'worker update', 1)
// parentPort.postMessage({ parentPort.postMessage({
// msg: `From thread #${workerIndex}: update done`, msg: `From thread #${workerIndex}: update done`,
// workerIndex: workerIndex, workerIndex: workerIndex,
// }) })
// console.log(`[THREAD #${workerIndex}]: update`) // console.log(`[THREAD #${workerIndex}]: update`)
} else if (msg.type === 'newdb') { } else if (msg.type === 'newdb') {
qdbs.push(msg.newdb) qdbs.push(msg.newdb)
parentPort.postMessage({
msg: `From thread #${workerIndex}: new db add done`,
workerIndex: workerIndex,
})
// console.log(`[THREAD #${workerIndex}]: newdb`) // console.log(`[THREAD #${workerIndex}]: newdb`)
} else { } else {
logger.Log(`Invalid msg type!`, logger.GetColor('redbg')) logger.Log(`Invalid msg type!`, logger.GetColor('redbg'))

View file

@ -44,13 +44,14 @@ function handleWorkerError(worker: WorkerObj, err) {
// TODO: accuire all workers here, and handle errors so they can be removed if threads exit // TODO: accuire all workers here, and handle errors so they can be removed if threads exit
export function msgAllWorker(data: any): Promise<any> { export function msgAllWorker(data: any): Promise<any> {
console.log('MSGING ALL WORKER') logger.DebugLog('MSGING ALL WORKER', 'job', 1)
return new Promise((resolve) => { return new Promise((resolve) => {
const promises = [] const promises = []
workers.forEach((worker) => { workers.forEach((worker) => {
promises.push(doALongTask(data, worker.index)) promises.push(doALongTask(data, worker.index))
}) })
Promise.all(promises).then((res) => { Promise.all(promises).then((res) => {
logger.DebugLog('MSGING ALL WORKER DONE', 'job', 1)
resolve(res) resolve(res)
}) })
}) })
@ -131,8 +132,10 @@ function processJob() {
if (!isNaN(pendingJobs[jobKey].targetWorkerIndex)) { if (!isNaN(pendingJobs[jobKey].targetWorkerIndex)) {
if (workers[pendingJobs[jobKey].targetWorkerIndex].free) { if (workers[pendingJobs[jobKey].targetWorkerIndex].free) {
freeWorker = workers[pendingJobs[jobKey].targetWorkerIndex] freeWorker = workers[pendingJobs[jobKey].targetWorkerIndex]
console.log( logger.DebugLog(
`RESERVING WORKER ${pendingJobs[jobKey].targetWorkerIndex}` `RESERVING WORKER ${pendingJobs[jobKey].targetWorkerIndex}`,
'job',
1
) )
} }
} else { } else {
@ -140,14 +143,18 @@ function processJob() {
return worker.free return worker.free
}) })
if (freeWorker) { if (freeWorker) {
console.log(`RESERVING FIRST AVAILABLE WORKER ${freeWorker.index}`) logger.DebugLog(
`RESERVING FIRST AVAILABLE WORKER ${freeWorker.index}`,
'job',
1
)
} }
} }
i++ i++
} }
if (!freeWorker) { if (!freeWorker) {
console.log('NO FREE WORKER') logger.DebugLog('NO FREE WORKER', 'job', 1)
return return
} }