]>
Commit | Line | Data |
---|---|---|
1 | import { join } from 'path' | |
2 | import Piscina from 'piscina' | |
3 | import { WORKER_THREADS } from '@server/initializers/constants' | |
4 | import { downloadImage } from './workers/image-downloader' | |
5 | import { processImage } from '@server/helpers/image-utils' | |
6 | ||
7 | const downloadImagerWorker = new Piscina({ | |
8 | filename: join(__dirname, 'workers', 'image-downloader.js'), | |
9 | concurrentTasksPerWorker: WORKER_THREADS.DOWNLOAD_IMAGE.CONCURRENCY, | |
10 | maxThreads: WORKER_THREADS.DOWNLOAD_IMAGE.MAX_THREADS | |
11 | }) | |
12 | ||
13 | function downloadImageFromWorker (options: Parameters<typeof downloadImage>[0]): Promise<ReturnType<typeof downloadImage>> { | |
14 | return downloadImagerWorker.run(options) | |
15 | } | |
16 | ||
17 | // --------------------------------------------------------------------------- | |
18 | ||
19 | const processImageWorker = new Piscina({ | |
20 | filename: join(__dirname, 'workers', 'image-processor.js'), | |
21 | concurrentTasksPerWorker: WORKER_THREADS.DOWNLOAD_IMAGE.CONCURRENCY, | |
22 | maxThreads: WORKER_THREADS.DOWNLOAD_IMAGE.MAX_THREADS | |
23 | }) | |
24 | ||
25 | function processImageFromWorker (options: Parameters<typeof processImage>[0]): Promise<ReturnType<typeof processImage>> { | |
26 | return processImageWorker.run(options) | |
27 | } | |
28 | ||
29 | export { | |
30 | downloadImageFromWorker, | |
31 | processImageFromWorker | |
32 | } |