From b42c2c7e89a64ed730d8140840fe74a13c31f2a4 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 9 Aug 2022 09:09:31 +0200 Subject: Avoid concurrency issue on transcoding --- server/lib/job-queue/handlers/video-transcoding.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'server/lib/job-queue/handlers') diff --git a/server/lib/job-queue/handlers/video-transcoding.ts b/server/lib/job-queue/handlers/video-transcoding.ts index 8dbae8c42..cb2978157 100644 --- a/server/lib/job-queue/handlers/video-transcoding.ts +++ b/server/lib/job-queue/handlers/video-transcoding.ts @@ -1,7 +1,7 @@ import { Job } from 'bullmq' import { TranscodeVODOptionsType } from '@server/helpers/ffmpeg' import { Hooks } from '@server/lib/plugins/hooks' -import { addTranscodingJob, getTranscodingJobPriority } from '@server/lib/video' +import { buildTranscodingJob, getTranscodingJobPriority } from '@server/lib/video' import { VideoPathManager } from '@server/lib/video-path-manager' import { moveToFailedTranscodingState, moveToNextState } from '@server/lib/video-state' import { UserModel } from '@server/models/user/user' @@ -27,6 +27,7 @@ import { optimizeOriginalVideofile, transcodeNewWebTorrentResolution } from '../../transcoding/transcoding' +import { JobQueue } from '../job-queue' type HandlerFunction = (job: Job, payload: VideoTranscodingPayload, video: MVideoFullLight, user: MUser) => Promise @@ -248,7 +249,7 @@ async function createHlsJobIfEnabled (user: MUserId, payload: { ...pick(payload, [ 'videoUUID', 'resolution', 'copyCodecs', 'isMaxQuality', 'isNewVideo', 'hasAudio' ]) } - await addTranscodingJob(hlsTranscodingPayload, jobOptions) + await JobQueue.Instance.createJob(await buildTranscodingJob(hlsTranscodingPayload, jobOptions)) return true } @@ -312,7 +313,7 @@ async function createLowerResolutionsJobs (options: { priority: await getTranscodingJobPriority(user) } - await addTranscodingJob(dataInput, jobOptions) + await JobQueue.Instance.createJob(await buildTranscodingJob(dataInput, jobOptions)) } if (resolutionCreated.length === 0) { -- cgit v1.2.3