diff options
Diffstat (limited to 'server/lib/job-queue/handlers')
-rw-r--r-- | server/lib/job-queue/handlers/video-file.ts | 40 |
1 files changed, 18 insertions, 22 deletions
diff --git a/server/lib/job-queue/handlers/video-file.ts b/server/lib/job-queue/handlers/video-file.ts index bd9412290..1b41d29e8 100644 --- a/server/lib/job-queue/handlers/video-file.ts +++ b/server/lib/job-queue/handlers/video-file.ts | |||
@@ -63,8 +63,10 @@ async function onVideoFileOptimizerSuccess (video: VideoModel) { | |||
63 | 63 | ||
64 | if (video.privacy !== VideoPrivacy.PRIVATE) { | 64 | if (video.privacy !== VideoPrivacy.PRIVATE) { |
65 | // Now we'll add the video's meta data to our followers | 65 | // Now we'll add the video's meta data to our followers |
66 | await sendCreateVideo(video, undefined) | 66 | await sequelizeTypescript.transaction(async t => { |
67 | await shareVideoByServerAndChannel(video, undefined) | 67 | await sendCreateVideo(video, t) |
68 | await shareVideoByServerAndChannel(video, t) | ||
69 | }) | ||
68 | } | 70 | } |
69 | 71 | ||
70 | const { videoFileResolution } = await videoDatabase.getOriginalFileResolution() | 72 | const { videoFileResolution } = await videoDatabase.getOriginalFileResolution() |
@@ -77,27 +79,21 @@ async function onVideoFileOptimizerSuccess (video: VideoModel) { | |||
77 | ) | 79 | ) |
78 | 80 | ||
79 | if (resolutionsEnabled.length !== 0) { | 81 | if (resolutionsEnabled.length !== 0) { |
80 | try { | 82 | const tasks: Promise<any>[] = [] |
81 | await sequelizeTypescript.transaction(async t => { | 83 | |
82 | const tasks: Promise<any>[] = [] | 84 | for (const resolution of resolutionsEnabled) { |
83 | 85 | const dataInput = { | |
84 | for (const resolution of resolutionsEnabled) { | 86 | videoUUID: videoDatabase.uuid, |
85 | const dataInput = { | 87 | resolution |
86 | videoUUID: videoDatabase.uuid, | 88 | } |
87 | resolution | 89 | |
88 | } | 90 | const p = JobQueue.Instance.createJob({ type: 'video-file', payload: dataInput }) |
89 | 91 | tasks.push(p) | |
90 | const p = JobQueue.Instance.createJob({ type: 'video-file', payload: dataInput }) | ||
91 | tasks.push(p) | ||
92 | } | ||
93 | |||
94 | await Promise.all(tasks) | ||
95 | }) | ||
96 | |||
97 | logger.info('Transcoding jobs created for uuid %s.', videoDatabase.uuid, { resolutionsEnabled }) | ||
98 | } catch (err) { | ||
99 | logger.warn('Cannot transcode the video.', err) | ||
100 | } | 92 | } |
93 | |||
94 | await Promise.all(tasks) | ||
95 | |||
96 | logger.info('Transcoding jobs created for uuid %s.', videoDatabase.uuid, { resolutionsEnabled }) | ||
101 | } else { | 97 | } else { |
102 | logger.info('No transcoding jobs created for video %s (no resolutions enabled).') | 98 | logger.info('No transcoding jobs created for video %s (no resolutions enabled).') |
103 | return undefined | 99 | return undefined |