From a15871560f80e07386c1dabb8370cd2664ecfd1f Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 31 Jan 2020 16:56:52 +0100 Subject: Move to eslint --- .../handlers/utils/activitypub-http-utils.ts | 2 +- server/lib/job-queue/handlers/video-file-import.ts | 2 +- server/lib/job-queue/handlers/video-import.ts | 2 +- server/lib/job-queue/handlers/video-transcoding.ts | 17 +++++------ server/lib/job-queue/job-queue.ts | 34 +++++++++++++--------- 5 files changed, 30 insertions(+), 27 deletions(-) (limited to 'server/lib/job-queue') diff --git a/server/lib/job-queue/handlers/utils/activitypub-http-utils.ts b/server/lib/job-queue/handlers/utils/activitypub-http-utils.ts index d3bde6e6a..a28f3596f 100644 --- a/server/lib/job-queue/handlers/utils/activitypub-http-utils.ts +++ b/server/lib/job-queue/handlers/utils/activitypub-http-utils.ts @@ -42,7 +42,7 @@ async function buildSignedRequestOptions (payload: Payload) { function buildGlobalHeaders (body: any) { return { - 'Digest': buildDigest(body) + Digest: buildDigest(body) } } diff --git a/server/lib/job-queue/handlers/video-file-import.ts b/server/lib/job-queue/handlers/video-file-import.ts index 99c991e72..be9e7d181 100644 --- a/server/lib/job-queue/handlers/video-file-import.ts +++ b/server/lib/job-queue/handlers/video-file-import.ts @@ -11,7 +11,7 @@ import { createTorrentAndSetInfoHash } from '@server/helpers/webtorrent' import { getVideoFilePath } from '@server/lib/video-paths' export type VideoFileImportPayload = { - videoUUID: string, + videoUUID: string filePath: string } diff --git a/server/lib/job-queue/handlers/video-import.ts b/server/lib/job-queue/handlers/video-import.ts index 1fca17584..09f225cec 100644 --- a/server/lib/job-queue/handlers/video-import.ts +++ b/server/lib/job-queue/handlers/video-import.ts @@ -221,7 +221,7 @@ async function processFile (downloader: () => Promise, videoImport: MVid isNewVideo: true } - await JobQueue.Instance.createJob({ type: 'video-transcoding', payload: dataInput }) + await JobQueue.Instance.createJobWithPromise({ type: 'video-transcoding', payload: dataInput }) } } catch (err) { diff --git a/server/lib/job-queue/handlers/video-transcoding.ts b/server/lib/job-queue/handlers/video-transcoding.ts index 39b9fac98..c020057c9 100644 --- a/server/lib/job-queue/handlers/video-transcoding.ts +++ b/server/lib/job-queue/handlers/video-transcoding.ts @@ -6,7 +6,6 @@ import { JobQueue } from '../job-queue' import { federateVideoIfNeeded } from '../../activitypub' import { retryTransactionWrapper } from '../../../helpers/database-utils' import { sequelizeTypescript } from '../../../initializers' -import * as Bluebird from 'bluebird' import { computeResolutionsToTranscode } from '../../../helpers/ffmpeg-utils' import { generateHlsPlaylist, mergeAudioVideofile, optimizeOriginalVideofile, transcodeNewResolution } from '../../video-transcoding' import { Notifier } from '../../notifier' @@ -40,8 +39,11 @@ interface OptimizeTranscodingPayload extends BaseTranscodingPayload { type: 'optimize' } -export type VideoTranscodingPayload = HLSTranscodingPayload | NewResolutionTranscodingPayload - | OptimizeTranscodingPayload | MergeAudioTranscodingPayload +export type VideoTranscodingPayload = + HLSTranscodingPayload + | NewResolutionTranscodingPayload + | OptimizeTranscodingPayload + | MergeAudioTranscodingPayload async function processVideoTranscoding (job: Bull.Job) { const payload = job.data as VideoTranscodingPayload @@ -105,7 +107,7 @@ async function onVideoFileOptimizerSuccess (videoArg: MVideoWithFile, payload: O const { videoDatabase, videoPublished } = await sequelizeTypescript.transaction(async t => { // Maybe the video changed in database, refresh it - let videoDatabase = await VideoModel.loadAndPopulateAccountAndServerAndTags(videoArg.uuid, t) + const videoDatabase = await VideoModel.loadAndPopulateAccountAndServerAndTags(videoArg.uuid, t) // Video does not exist anymore if (!videoDatabase) return undefined @@ -122,8 +124,6 @@ async function onVideoFileOptimizerSuccess (videoArg: MVideoWithFile, payload: O await createHlsJobIfEnabled(hlsPayload) if (resolutionsEnabled.length !== 0) { - const tasks: (Bluebird> | Promise>)[] = [] - for (const resolution of resolutionsEnabled) { let dataInput: VideoTranscodingPayload @@ -143,12 +143,9 @@ async function onVideoFileOptimizerSuccess (videoArg: MVideoWithFile, payload: O } } - const p = JobQueue.Instance.createJob({ type: 'video-transcoding', payload: dataInput }) - tasks.push(p) + JobQueue.Instance.createJob({ type: 'video-transcoding', payload: dataInput }) } - await Promise.all(tasks) - logger.info('Transcoding jobs created for uuid %s.', videoDatabase.uuid, { resolutionsEnabled }) } else { // No transcoding to do, it's now published diff --git a/server/lib/job-queue/job-queue.ts b/server/lib/job-queue/job-queue.ts index 61f07c487..14acace7d 100644 --- a/server/lib/job-queue/job-queue.ts +++ b/server/lib/job-queue/job-queue.ts @@ -28,7 +28,7 @@ type CreateJobArgument = { type: 'videos-views', payload: {} } | { type: 'video-redundancy', payload: VideoRedundancyPayload } -const handlers: { [ id in JobType ]: (job: Bull.Job) => Promise} = { +const handlers: { [id in JobType]: (job: Bull.Job) => Promise } = { 'activitypub-http-broadcast': processActivityPubHttpBroadcast, 'activitypub-http-unicast': processActivityPubHttpUnicast, 'activitypub-http-fetcher': processActivityPubHttpFetcher, @@ -60,13 +60,14 @@ class JobQueue { private static instance: JobQueue - private queues: { [ id in JobType ]?: Bull.Queue } = {} + private queues: { [id in JobType]?: Bull.Queue } = {} private initialized = false private jobRedisPrefix: string - private constructor () {} + private constructor () { + } - async init () { + init () { // Already initialized if (this.initialized === true) return this.initialized = true @@ -108,11 +109,16 @@ class JobQueue { } } - createJob (obj: CreateJobArgument) { + createJob (obj: CreateJobArgument): void { + this.createJobWithPromise(obj) + .catch(err => logger.error('Cannot create job.', { err, obj })) + } + + createJobWithPromise (obj: CreateJobArgument) { const queue = this.queues[obj.type] if (queue === undefined) { logger.error('Unknown queue %s: cannot create job.', obj.type) - throw Error('Unknown queue, cannot create job') + return } const jobArgs: Bull.JobOptions = { @@ -125,10 +131,10 @@ class JobQueue { } async listForApi (options: { - state: JobState, - start: number, - count: number, - asc?: boolean, + state: JobState + start: number + count: number + asc?: boolean jobType: JobType }): Promise { const { state, start, count, asc, jobType } = options @@ -137,7 +143,7 @@ class JobQueue { const filteredJobTypes = this.filterJobTypes(jobType) for (const jobType of filteredJobTypes) { - const queue = this.queues[ jobType ] + const queue = this.queues[jobType] if (queue === undefined) { logger.error('Unknown queue %s to list jobs.', jobType) continue @@ -165,7 +171,7 @@ class JobQueue { const filteredJobTypes = this.filterJobTypes(jobType) for (const type of filteredJobTypes) { - const queue = this.queues[ type ] + const queue = this.queues[type] if (queue === undefined) { logger.error('Unknown queue %s to count jobs.', type) continue @@ -173,7 +179,7 @@ class JobQueue { const counts = await queue.getJobCounts() - total += counts[ state ] + total += counts[state] } return total @@ -189,7 +195,7 @@ class JobQueue { private addRepeatableJobs () { this.queues['videos-views'].add({}, { repeat: REPEAT_JOBS['videos-views'] - }) + }).catch(err => logger.error('Cannot add repeatable job.', { err })) } private filterJobTypes (jobType?: JobType) { -- cgit v1.2.3