]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/lib/worker/parent-process.ts
Process images in a dedicated worker
[github/Chocobozzz/PeerTube.git] / server / lib / worker / parent-process.ts
index 18dabd97f5a483ecf641e5d6b8d2840691c60c4e..188001677c83a0306f785ab7e0663542a438db83 100644 (file)
@@ -2,6 +2,7 @@ import { join } from 'path'
 import Piscina from 'piscina'
 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'),
@@ -13,6 +14,19 @@ function downloadImageFromWorker (options: Parameters<typeof downloadImage>[0]):
   return downloadImagerWorker.run(options)
 }
 
+// ---------------------------------------------------------------------------
+
+const processImageWorker = new Piscina({
+  filename: join(__dirname, 'workers', 'image-processor.js'),
+  concurrentTasksPerWorker: WORKER_THREADS.DOWNLOAD_IMAGE.CONCURRENCY,
+  maxThreads: WORKER_THREADS.DOWNLOAD_IMAGE.MAX_THREADS
+})
+
+function processImageFromWorker (options: Parameters<typeof processImage>[0]): Promise<ReturnType<typeof processImage>> {
+  return processImageWorker.run(options)
+}
+
 export {
-  downloadImageFromWorker
+  downloadImageFromWorker,
+  processImageFromWorker
 }