Fix integrity with transcoding jobs

pull/125/head
Chocobozzz 2017-10-26 14:22:37 +02:00
parent 911238e343
commit 4077df72c6
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
2 changed files with 20 additions and 8 deletions

View File

@ -29,17 +29,22 @@ async function onSuccess (jobId: number, video: VideoInstance) {
logger.info('Job %d is a success.', jobId)
const remoteVideo = await video.toAddRemoteJSON()
// Maybe the video changed in database, refresh it
const videoDatabase = await db.Video.loadByUUIDAndPopulateAuthorAndPodAndTags(video.uuid)
// Video does not exist anymore
if (!videoDatabase) return undefined
const remoteVideo = await videoDatabase.toAddRemoteJSON()
// Now we'll add the video's meta data to our friends
await addVideoToFriends(remoteVideo, null)
const originalFileHeight = await video.getOriginalFileHeight()
const originalFileHeight = await videoDatabase.getOriginalFileHeight()
// Create transcoding jobs if there are enabled resolutions
const resolutionsEnabled = computeResolutionsToTranscode(originalFileHeight)
logger.info(
'Resolutions computed for video %s and origin file height of %d.', video.uuid, originalFileHeight,
'Resolutions computed for video %s and origin file height of %d.', videoDatabase.uuid, originalFileHeight,
{ resolutions: resolutionsEnabled }
)
@ -50,7 +55,7 @@ async function onSuccess (jobId: number, video: VideoInstance) {
for (const resolution of resolutionsEnabled) {
const dataInput = {
videoUUID: video.uuid,
videoUUID: videoDatabase.uuid,
resolution
}
@ -61,7 +66,7 @@ async function onSuccess (jobId: number, video: VideoInstance) {
await Promise.all(tasks)
})
logger.info('Transcoding jobs created for uuid %s.', video.uuid, { resolutionsEnabled })
logger.info('Transcoding jobs created for uuid %s.', videoDatabase.uuid, { resolutionsEnabled })
} catch (err) {
logger.warn('Cannot transcode the video.', err)
}

View File

@ -22,15 +22,22 @@ function onError (err: Error, jobId: number) {
return Promise.resolve()
}
function onSuccess (jobId: number, video: VideoInstance) {
async function onSuccess (jobId: number, video: VideoInstance) {
if (video === undefined) return undefined
logger.info('Job %d is a success.', jobId)
const remoteVideo = video.toUpdateRemoteJSON()
// Maybe the video changed in database, refresh it
const videoDatabase = await db.Video.loadByUUIDAndPopulateAuthorAndPodAndTags(video.uuid)
// Video does not exist anymore
if (!videoDatabase) return undefined
const remoteVideo = videoDatabase.toUpdateRemoteJSON()
// Now we'll add the video's meta data to our friends
return updateVideoToFriends(remoteVideo, null)
await updateVideoToFriends(remoteVideo, null)
return
}
// ---------------------------------------------------------------------------