mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2025-10-04 10:19:35 +02:00
Implement remote runner jobs in server
Move ffmpeg functions to @shared
This commit is contained in:
parent
6bcb854cde
commit
0c9668f779
168 changed files with 6907 additions and 2803 deletions
47
server/lib/job-queue/handlers/transcoding-job-builder.ts
Normal file
47
server/lib/job-queue/handlers/transcoding-job-builder.ts
Normal file
|
@ -0,0 +1,47 @@
|
|||
import { Job } from 'bullmq'
|
||||
import { createOptimizeOrMergeAudioJobs } from '@server/lib/transcoding/create-transcoding-job'
|
||||
import { UserModel } from '@server/models/user/user'
|
||||
import { VideoModel } from '@server/models/video/video'
|
||||
import { VideoJobInfoModel } from '@server/models/video/video-job-info'
|
||||
import { pick } from '@shared/core-utils'
|
||||
import { TranscodingJobBuilderPayload } from '@shared/models'
|
||||
import { logger } from '../../../helpers/logger'
|
||||
import { JobQueue } from '../job-queue'
|
||||
|
||||
async function processTranscodingJobBuilder (job: Job) {
|
||||
const payload = job.data as TranscodingJobBuilderPayload
|
||||
|
||||
logger.info('Processing transcoding job builder in job %s.', job.id)
|
||||
|
||||
if (payload.optimizeJob) {
|
||||
const video = await VideoModel.loadFull(payload.videoUUID)
|
||||
const user = await UserModel.loadByVideoId(video.id)
|
||||
const videoFile = video.getMaxQualityFile()
|
||||
|
||||
await createOptimizeOrMergeAudioJobs({
|
||||
...pick(payload.optimizeJob, [ 'isNewVideo' ]),
|
||||
|
||||
video,
|
||||
videoFile,
|
||||
user
|
||||
})
|
||||
}
|
||||
|
||||
for (const job of (payload.jobs || [])) {
|
||||
await JobQueue.Instance.createJob(job)
|
||||
|
||||
await VideoJobInfoModel.increaseOrCreate(payload.videoUUID, 'pendingTranscode')
|
||||
}
|
||||
|
||||
for (const sequentialJobs of (payload.sequentialJobs || [])) {
|
||||
await JobQueue.Instance.createSequentialJobFlow(...sequentialJobs)
|
||||
|
||||
await VideoJobInfoModel.increaseOrCreate(payload.videoUUID, 'pendingTranscode', sequentialJobs.length)
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
export {
|
||||
processTranscodingJobBuilder
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue