diff options
author | Chocobozzz <me@florianbigard.com> | 2022-08-09 09:09:31 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2022-08-09 09:32:17 +0200 |
commit | b42c2c7e89a64ed730d8140840fe74a13c31f2a4 (patch) | |
tree | 715e7ad31d03881e3f3530dba1fe3d172251249b /server/lib/job-queue/handlers/video-transcoding.ts | |
parent | bd911b54b555b11df7e9849cf92d358bccfecf6e (diff) | |
download | PeerTube-b42c2c7e89a64ed730d8140840fe74a13c31f2a4.tar.gz PeerTube-b42c2c7e89a64ed730d8140840fe74a13c31f2a4.tar.zst PeerTube-b42c2c7e89a64ed730d8140840fe74a13c31f2a4.zip |
Avoid concurrency issue on transcoding
Diffstat (limited to 'server/lib/job-queue/handlers/video-transcoding.ts')
-rw-r--r-- | server/lib/job-queue/handlers/video-transcoding.ts | 7 |
1 files changed, 4 insertions, 3 deletions
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 @@ | |||
1 | import { Job } from 'bullmq' | 1 | import { Job } from 'bullmq' |
2 | import { TranscodeVODOptionsType } from '@server/helpers/ffmpeg' | 2 | import { TranscodeVODOptionsType } from '@server/helpers/ffmpeg' |
3 | import { Hooks } from '@server/lib/plugins/hooks' | 3 | import { Hooks } from '@server/lib/plugins/hooks' |
4 | import { addTranscodingJob, getTranscodingJobPriority } from '@server/lib/video' | 4 | import { buildTranscodingJob, getTranscodingJobPriority } from '@server/lib/video' |
5 | import { VideoPathManager } from '@server/lib/video-path-manager' | 5 | import { VideoPathManager } from '@server/lib/video-path-manager' |
6 | import { moveToFailedTranscodingState, moveToNextState } from '@server/lib/video-state' | 6 | import { moveToFailedTranscodingState, moveToNextState } from '@server/lib/video-state' |
7 | import { UserModel } from '@server/models/user/user' | 7 | import { UserModel } from '@server/models/user/user' |
@@ -27,6 +27,7 @@ import { | |||
27 | optimizeOriginalVideofile, | 27 | optimizeOriginalVideofile, |
28 | transcodeNewWebTorrentResolution | 28 | transcodeNewWebTorrentResolution |
29 | } from '../../transcoding/transcoding' | 29 | } from '../../transcoding/transcoding' |
30 | import { JobQueue } from '../job-queue' | ||
30 | 31 | ||
31 | type HandlerFunction = (job: Job, payload: VideoTranscodingPayload, video: MVideoFullLight, user: MUser) => Promise<void> | 32 | type HandlerFunction = (job: Job, payload: VideoTranscodingPayload, video: MVideoFullLight, user: MUser) => Promise<void> |
32 | 33 | ||
@@ -248,7 +249,7 @@ async function createHlsJobIfEnabled (user: MUserId, payload: { | |||
248 | ...pick(payload, [ 'videoUUID', 'resolution', 'copyCodecs', 'isMaxQuality', 'isNewVideo', 'hasAudio' ]) | 249 | ...pick(payload, [ 'videoUUID', 'resolution', 'copyCodecs', 'isMaxQuality', 'isNewVideo', 'hasAudio' ]) |
249 | } | 250 | } |
250 | 251 | ||
251 | await addTranscodingJob(hlsTranscodingPayload, jobOptions) | 252 | await JobQueue.Instance.createJob(await buildTranscodingJob(hlsTranscodingPayload, jobOptions)) |
252 | 253 | ||
253 | return true | 254 | return true |
254 | } | 255 | } |
@@ -312,7 +313,7 @@ async function createLowerResolutionsJobs (options: { | |||
312 | priority: await getTranscodingJobPriority(user) | 313 | priority: await getTranscodingJobPriority(user) |
313 | } | 314 | } |
314 | 315 | ||
315 | await addTranscodingJob(dataInput, jobOptions) | 316 | await JobQueue.Instance.createJob(await buildTranscodingJob(dataInput, jobOptions)) |
316 | } | 317 | } |
317 | 318 | ||
318 | if (resolutionCreated.length === 0) { | 319 | if (resolutionCreated.length === 0) { |