Lazy load piscina
This commit is contained in:
parent
ccd62a4502
commit
daa0226b0a
|
@ -1,28 +1,36 @@
|
|||
import { join } from 'path'
|
||||
import Piscina from 'piscina'
|
||||
import { processImage } from '@server/helpers/image-utils'
|
||||
import { WORKER_THREADS } from '@server/initializers/constants'
|
||||
import { downloadImage } from './workers/image-downloader'
|
||||
import { processImage } from '@server/helpers/image-utils'
|
||||
|
||||
const downloadImagerWorker = new Piscina({
|
||||
filename: join(__dirname, 'workers', 'image-downloader.js'),
|
||||
concurrentTasksPerWorker: WORKER_THREADS.DOWNLOAD_IMAGE.CONCURRENCY,
|
||||
maxThreads: WORKER_THREADS.DOWNLOAD_IMAGE.MAX_THREADS
|
||||
})
|
||||
let downloadImageWorker: Piscina
|
||||
|
||||
function downloadImageFromWorker (options: Parameters<typeof downloadImage>[0]): Promise<ReturnType<typeof downloadImage>> {
|
||||
return downloadImagerWorker.run(options)
|
||||
if (!downloadImageWorker) {
|
||||
downloadImageWorker = new Piscina({
|
||||
filename: join(__dirname, 'workers', 'image-downloader.js'),
|
||||
concurrentTasksPerWorker: WORKER_THREADS.DOWNLOAD_IMAGE.CONCURRENCY,
|
||||
maxThreads: WORKER_THREADS.DOWNLOAD_IMAGE.MAX_THREADS
|
||||
})
|
||||
}
|
||||
|
||||
return downloadImageWorker.run(options)
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
const processImageWorker = new Piscina({
|
||||
filename: join(__dirname, 'workers', 'image-processor.js'),
|
||||
concurrentTasksPerWorker: WORKER_THREADS.PROCESS_IMAGE.CONCURRENCY,
|
||||
maxThreads: WORKER_THREADS.PROCESS_IMAGE.MAX_THREADS
|
||||
})
|
||||
let processImageWorker: Piscina
|
||||
|
||||
function processImageFromWorker (options: Parameters<typeof processImage>[0]): Promise<ReturnType<typeof processImage>> {
|
||||
if (!processImageWorker) {
|
||||
processImageWorker = new Piscina({
|
||||
filename: join(__dirname, 'workers', 'image-processor.js'),
|
||||
concurrentTasksPerWorker: WORKER_THREADS.PROCESS_IMAGE.CONCURRENCY,
|
||||
maxThreads: WORKER_THREADS.PROCESS_IMAGE.MAX_THREADS
|
||||
})
|
||||
}
|
||||
|
||||
return processImageWorker.run(options)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue