mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2025-10-05 19:42:24 +02:00
Add piscina idle timeout
This commit is contained in:
parent
a29bf7619d
commit
6e40f1f5a0
2 changed files with 18 additions and 9 deletions
|
@ -1057,6 +1057,7 @@ export const MEMOIZE_LENGTH = {
|
||||||
export const totalCPUs = Math.max(cpus().length, 1)
|
export const totalCPUs = Math.max(cpus().length, 1)
|
||||||
|
|
||||||
export const WORKER_THREADS = {
|
export const WORKER_THREADS = {
|
||||||
|
IDLE_TIMEOUT: 1000 * 10, // 10 seconds
|
||||||
DOWNLOAD_IMAGE: {
|
DOWNLOAD_IMAGE: {
|
||||||
CONCURRENCY: 3,
|
CONCURRENCY: 3,
|
||||||
MAX_THREADS: 1
|
MAX_THREADS: 1
|
||||||
|
|
|
@ -18,7 +18,8 @@ export function downloadImageFromWorker (options: Parameters<typeof downloadImag
|
||||||
filename: new URL(join('workers', 'image-downloader.js'), import.meta.url).href,
|
filename: new URL(join('workers', 'image-downloader.js'), import.meta.url).href,
|
||||||
concurrentTasksPerWorker: WORKER_THREADS.DOWNLOAD_IMAGE.CONCURRENCY,
|
concurrentTasksPerWorker: WORKER_THREADS.DOWNLOAD_IMAGE.CONCURRENCY,
|
||||||
maxThreads: WORKER_THREADS.DOWNLOAD_IMAGE.MAX_THREADS,
|
maxThreads: WORKER_THREADS.DOWNLOAD_IMAGE.MAX_THREADS,
|
||||||
minThreads: 1
|
minThreads: 1,
|
||||||
|
idleTimeout: WORKER_THREADS.IDLE_TIMEOUT
|
||||||
})
|
})
|
||||||
|
|
||||||
downloadImageWorker.on('error', err => logger.error('Error in download image worker', { err }))
|
downloadImageWorker.on('error', err => logger.error('Error in download image worker', { err }))
|
||||||
|
@ -37,7 +38,8 @@ export function processImageFromWorker (options: Parameters<typeof processImage>
|
||||||
filename: new URL(join('workers', 'image-processor.js'), import.meta.url).href,
|
filename: new URL(join('workers', 'image-processor.js'), import.meta.url).href,
|
||||||
concurrentTasksPerWorker: WORKER_THREADS.PROCESS_IMAGE.CONCURRENCY,
|
concurrentTasksPerWorker: WORKER_THREADS.PROCESS_IMAGE.CONCURRENCY,
|
||||||
maxThreads: WORKER_THREADS.PROCESS_IMAGE.MAX_THREADS,
|
maxThreads: WORKER_THREADS.PROCESS_IMAGE.MAX_THREADS,
|
||||||
minThreads: 1
|
minThreads: 1,
|
||||||
|
idleTimeout: WORKER_THREADS.IDLE_TIMEOUT
|
||||||
})
|
})
|
||||||
|
|
||||||
processImageWorker.on('error', err => logger.error('Error in process image worker', { err }))
|
processImageWorker.on('error', err => logger.error('Error in process image worker', { err }))
|
||||||
|
@ -56,7 +58,8 @@ export function getImageSizeFromWorker (options: Parameters<typeof getImageSize>
|
||||||
filename: new URL(join('workers', 'get-image-size.js'), import.meta.url).href,
|
filename: new URL(join('workers', 'get-image-size.js'), import.meta.url).href,
|
||||||
concurrentTasksPerWorker: WORKER_THREADS.GET_IMAGE_SIZE.CONCURRENCY,
|
concurrentTasksPerWorker: WORKER_THREADS.GET_IMAGE_SIZE.CONCURRENCY,
|
||||||
maxThreads: WORKER_THREADS.GET_IMAGE_SIZE.MAX_THREADS,
|
maxThreads: WORKER_THREADS.GET_IMAGE_SIZE.MAX_THREADS,
|
||||||
minThreads: 1
|
minThreads: 1,
|
||||||
|
idleTimeout: WORKER_THREADS.IDLE_TIMEOUT
|
||||||
})
|
})
|
||||||
|
|
||||||
getImageSizeWorker.on('error', err => logger.error('Error in get image size worker', { err }))
|
getImageSizeWorker.on('error', err => logger.error('Error in get image size worker', { err }))
|
||||||
|
@ -76,7 +79,8 @@ export function parallelHTTPBroadcastFromWorker (options: Parameters<typeof http
|
||||||
// Keep it sync with job concurrency so the worker will accept all the requests sent by the parallelized jobs
|
// Keep it sync with job concurrency so the worker will accept all the requests sent by the parallelized jobs
|
||||||
concurrentTasksPerWorker: JOB_CONCURRENCY['activitypub-http-broadcast-parallel'],
|
concurrentTasksPerWorker: JOB_CONCURRENCY['activitypub-http-broadcast-parallel'],
|
||||||
maxThreads: 1,
|
maxThreads: 1,
|
||||||
minThreads: 1
|
minThreads: 1,
|
||||||
|
idleTimeout: WORKER_THREADS.IDLE_TIMEOUT
|
||||||
})
|
})
|
||||||
|
|
||||||
parallelHTTPBroadcastWorker.on('error', err => logger.error('Error in parallel HTTP broadcast worker', { err }))
|
parallelHTTPBroadcastWorker.on('error', err => logger.error('Error in parallel HTTP broadcast worker', { err }))
|
||||||
|
@ -98,7 +102,8 @@ export function sequentialHTTPBroadcastFromWorker (
|
||||||
// Keep it sync with job concurrency so the worker will accept all the requests sent by the parallelized jobs
|
// Keep it sync with job concurrency so the worker will accept all the requests sent by the parallelized jobs
|
||||||
concurrentTasksPerWorker: JOB_CONCURRENCY['activitypub-http-broadcast'],
|
concurrentTasksPerWorker: JOB_CONCURRENCY['activitypub-http-broadcast'],
|
||||||
maxThreads: 1,
|
maxThreads: 1,
|
||||||
minThreads: 1
|
minThreads: 1,
|
||||||
|
idleTimeout: WORKER_THREADS.IDLE_TIMEOUT
|
||||||
})
|
})
|
||||||
|
|
||||||
sequentialHTTPBroadcastWorker.on('error', err => logger.error('Error in sequential HTTP broadcast image worker', { err }))
|
sequentialHTTPBroadcastWorker.on('error', err => logger.error('Error in sequential HTTP broadcast image worker', { err }))
|
||||||
|
@ -120,7 +125,8 @@ export function httpUnicastFromWorker (
|
||||||
// Keep it sync with job concurrency so the worker will accept all the requests sent by the parallelized jobs
|
// Keep it sync with job concurrency so the worker will accept all the requests sent by the parallelized jobs
|
||||||
concurrentTasksPerWorker: JOB_CONCURRENCY['activitypub-http-unicast'],
|
concurrentTasksPerWorker: JOB_CONCURRENCY['activitypub-http-unicast'],
|
||||||
maxThreads: 1,
|
maxThreads: 1,
|
||||||
minThreads: 1
|
minThreads: 1,
|
||||||
|
idleTimeout: WORKER_THREADS.IDLE_TIMEOUT
|
||||||
})
|
})
|
||||||
|
|
||||||
httpUnicastWorker.on('error', err => logger.error('Error in HTTP unicast worker', { err }))
|
httpUnicastWorker.on('error', err => logger.error('Error in HTTP unicast worker', { err }))
|
||||||
|
@ -141,7 +147,8 @@ export function signJsonLDObjectFromWorker <T> (
|
||||||
filename: new URL(join('workers', 'sign-json-ld-object.js'), import.meta.url).href,
|
filename: new URL(join('workers', 'sign-json-ld-object.js'), import.meta.url).href,
|
||||||
concurrentTasksPerWorker: WORKER_THREADS.SIGN_JSON_LD_OBJECT.CONCURRENCY,
|
concurrentTasksPerWorker: WORKER_THREADS.SIGN_JSON_LD_OBJECT.CONCURRENCY,
|
||||||
maxThreads: WORKER_THREADS.SIGN_JSON_LD_OBJECT.MAX_THREADS,
|
maxThreads: WORKER_THREADS.SIGN_JSON_LD_OBJECT.MAX_THREADS,
|
||||||
minThreads: 1
|
minThreads: 1,
|
||||||
|
idleTimeout: WORKER_THREADS.IDLE_TIMEOUT
|
||||||
})
|
})
|
||||||
|
|
||||||
signJsonLDObjectWorker.on('error', err => logger.error('Error in sign JSONLD object worker', { err }))
|
signJsonLDObjectWorker.on('error', err => logger.error('Error in sign JSONLD object worker', { err }))
|
||||||
|
@ -163,7 +170,8 @@ export function buildDigestFromWorker (
|
||||||
// Keep it sync with job concurrency so the worker will accept all the requests sent by the parallelized jobs
|
// Keep it sync with job concurrency so the worker will accept all the requests sent by the parallelized jobs
|
||||||
concurrentTasksPerWorker: WORKER_THREADS.BUILD_DIGEST.CONCURRENCY,
|
concurrentTasksPerWorker: WORKER_THREADS.BUILD_DIGEST.CONCURRENCY,
|
||||||
maxThreads: WORKER_THREADS.BUILD_DIGEST.MAX_THREADS,
|
maxThreads: WORKER_THREADS.BUILD_DIGEST.MAX_THREADS,
|
||||||
minThreads: 1
|
minThreads: 1,
|
||||||
|
idleTimeout: WORKER_THREADS.IDLE_TIMEOUT
|
||||||
})
|
})
|
||||||
|
|
||||||
buildDigestWorker.on('error', err => logger.error('Error in build digest worker', { err }))
|
buildDigestWorker.on('error', err => logger.error('Error in build digest worker', { err }))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue