aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/lib
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2021-05-05 09:25:11 +0200
committerChocobozzz <me@florianbigard.com>2021-05-05 09:32:20 +0200
commita6e37eebfbef9aef91e35173ed799afb6c4a288b (patch)
treefacc792949953f70453f7c59af5c6fde97d4a45c /server/lib
parent494e60804d15dfe1675d0390c8a7317911fd643f (diff)
downloadPeerTube-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.ts6
-rw-r--r--server/lib/video.ts8
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 @@
1import * as Bull from 'bull' 1import * as Bull from 'bull'
2import { TranscodeOptionsType } from '@server/helpers/ffmpeg-utils' 2import { TranscodeOptionsType } from '@server/helpers/ffmpeg-utils'
3import { JOB_PRIORITY } from '@server/initializers/constants' 3import { JOB_PRIORITY } from '@server/initializers/constants'
4import { getJobTranscodingPriorityMalus, publishAndFederateIfNeeded } from '@server/lib/video' 4import { getTranscodingJobPriority, publishAndFederateIfNeeded } from '@server/lib/video'
5import { getVideoFilePath } from '@server/lib/video-paths' 5import { getVideoFilePath } from '@server/lib/video-paths'
6import { UserModel } from '@server/models/account/user' 6import { UserModel } from '@server/models/account/user'
7import { MUser, MUserId, MVideoFullLight, MVideoUUID, MVideoWithFile } from '@server/types/models' 7import { 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
130async function getJobTranscodingPriorityMalus (user: MUserId) { 130async 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}