diff options
author | Chocobozzz <me@florianbigard.com> | 2021-05-05 09:25:11 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2021-05-05 09:32:20 +0200 |
commit | a6e37eebfbef9aef91e35173ed799afb6c4a288b (patch) | |
tree | facc792949953f70453f7c59af5c6fde97d4a45c /server/lib | |
parent | 494e60804d15dfe1675d0390c8a7317911fd643f (diff) | |
download | PeerTube-a6e37eebfbef9aef91e35173ed799afb6c4a288b.tar.gz PeerTube-a6e37eebfbef9aef91e35173ed799afb6c4a288b.tar.zst PeerTube-a6e37eebfbef9aef91e35173ed799afb6c4a288b.zip |
Fix transcoding job priority
New resolution jobs are also important if waiting for transcoding is
enabled since we publish the video after the first resolution generation
Diffstat (limited to 'server/lib')
-rw-r--r-- | server/lib/job-queue/handlers/video-transcoding.ts | 6 | ||||
-rw-r--r-- | server/lib/video.ts | 8 |
2 files changed, 7 insertions, 7 deletions
diff --git a/server/lib/job-queue/handlers/video-transcoding.ts b/server/lib/job-queue/handlers/video-transcoding.ts index 4ee2b2df2..dbf412fbb 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 * as Bull from 'bull' | 1 | import * as Bull from 'bull' |
2 | import { TranscodeOptionsType } from '@server/helpers/ffmpeg-utils' | 2 | import { TranscodeOptionsType } from '@server/helpers/ffmpeg-utils' |
3 | import { JOB_PRIORITY } from '@server/initializers/constants' | 3 | import { JOB_PRIORITY } from '@server/initializers/constants' |
4 | import { getJobTranscodingPriorityMalus, publishAndFederateIfNeeded } from '@server/lib/video' | 4 | import { getTranscodingJobPriority, publishAndFederateIfNeeded } from '@server/lib/video' |
5 | import { getVideoFilePath } from '@server/lib/video-paths' | 5 | import { getVideoFilePath } from '@server/lib/video-paths' |
6 | import { UserModel } from '@server/models/account/user' | 6 | import { UserModel } from '@server/models/account/user' |
7 | import { MUser, MUserId, MVideoFullLight, MVideoUUID, MVideoWithFile } from '@server/types/models' | 7 | import { MUser, MUserId, MVideoFullLight, MVideoUUID, MVideoWithFile } from '@server/types/models' |
@@ -215,7 +215,7 @@ async function createHlsJobIfEnabled (user: MUserId, payload: { | |||
215 | if (!payload || CONFIG.TRANSCODING.HLS.ENABLED !== true) return false | 215 | if (!payload || CONFIG.TRANSCODING.HLS.ENABLED !== true) return false |
216 | 216 | ||
217 | const jobOptions = { | 217 | const jobOptions = { |
218 | priority: JOB_PRIORITY.TRANSCODING.NEW_RESOLUTION + await getJobTranscodingPriorityMalus(user) | 218 | priority: await getTranscodingJobPriority(user) |
219 | } | 219 | } |
220 | 220 | ||
221 | const hlsTranscodingPayload: HLSTranscodingPayload = { | 221 | const hlsTranscodingPayload: HLSTranscodingPayload = { |
@@ -272,7 +272,7 @@ async function createLowerResolutionsJobs ( | |||
272 | resolutionCreated.push(resolution) | 272 | resolutionCreated.push(resolution) |
273 | 273 | ||
274 | const jobOptions = { | 274 | const jobOptions = { |
275 | priority: JOB_PRIORITY.TRANSCODING.NEW_RESOLUTION + await getJobTranscodingPriorityMalus(user) | 275 | priority: await getTranscodingJobPriority(user) |
276 | } | 276 | } |
277 | 277 | ||
278 | JobQueue.Instance.createJob({ type: 'video-transcoding', payload: dataInput }, jobOptions) | 278 | JobQueue.Instance.createJob({ type: 'video-transcoding', payload: dataInput }, jobOptions) |
diff --git a/server/lib/video.ts b/server/lib/video.ts index e381e0a69..9469b8178 100644 --- a/server/lib/video.ts +++ b/server/lib/video.ts | |||
@@ -121,19 +121,19 @@ async function addOptimizeOrMergeAudioJob (video: MVideo, videoFile: MVideoFile, | |||
121 | } | 121 | } |
122 | 122 | ||
123 | const jobOptions = { | 123 | const jobOptions = { |
124 | priority: JOB_PRIORITY.TRANSCODING.OPTIMIZER + await getJobTranscodingPriorityMalus(user) | 124 | priority: await getTranscodingJobPriority(user) |
125 | } | 125 | } |
126 | 126 | ||
127 | return JobQueue.Instance.createJobWithPromise({ type: 'video-transcoding', payload: dataInput }, jobOptions) | 127 | return JobQueue.Instance.createJobWithPromise({ type: 'video-transcoding', payload: dataInput }, jobOptions) |
128 | } | 128 | } |
129 | 129 | ||
130 | async function getJobTranscodingPriorityMalus (user: MUserId) { | 130 | async function getTranscodingJobPriority (user: MUserId) { |
131 | const now = new Date() | 131 | const now = new Date() |
132 | const lastWeek = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 7) | 132 | const lastWeek = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 7) |
133 | 133 | ||
134 | const videoUploadedByUser = await VideoModel.countVideosUploadedByUserSince(user.id, lastWeek) | 134 | const videoUploadedByUser = await VideoModel.countVideosUploadedByUserSince(user.id, lastWeek) |
135 | 135 | ||
136 | return videoUploadedByUser | 136 | return JOB_PRIORITY.TRANSCODING + videoUploadedByUser |
137 | } | 137 | } |
138 | 138 | ||
139 | // --------------------------------------------------------------------------- | 139 | // --------------------------------------------------------------------------- |
@@ -144,5 +144,5 @@ export { | |||
144 | buildVideoThumbnailsFromReq, | 144 | buildVideoThumbnailsFromReq, |
145 | setVideoTags, | 145 | setVideoTags, |
146 | addOptimizeOrMergeAudioJob, | 146 | addOptimizeOrMergeAudioJob, |
147 | getJobTranscodingPriorityMalus | 147 | getTranscodingJobPriority |
148 | } | 148 | } |