X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fjob-queue%2Fjob-queue.ts;h=d3776c3bfd6b72d373fd5c97e88e7f87cc0853f9;hb=941d28cc7f9877aa2cfcee018413e0f04f0a9048;hp=22bd1f5d2c70b3d8a8228aef440f4c70d7f7d552;hpb=419b520ca4434d17f3505013174e195c3a316716;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/job-queue/job-queue.ts b/server/lib/job-queue/job-queue.ts index 22bd1f5d2..d3776c3bf 100644 --- a/server/lib/job-queue/job-queue.ts +++ b/server/lib/job-queue/job-queue.ts @@ -12,12 +12,14 @@ import { EmailPayload, JobState, JobType, + ManageVideoTorrentPayload, MoveObjectStoragePayload, RefreshPayload, VideoFileImportPayload, VideoImportPayload, VideoLiveEndingPayload, VideoRedundancyPayload, + VideoStudioEditionPayload, VideoTranscodingPayload } from '../../../shared/models' import { logger } from '../../helpers/logger' @@ -30,10 +32,12 @@ import { processActivityPubHttpUnicast } from './handlers/activitypub-http-unica import { refreshAPObject } from './handlers/activitypub-refresher' import { processActorKeys } from './handlers/actor-keys' import { processEmail } from './handlers/email' +import { processManageVideoTorrent } from './handlers/manage-video-torrent' import { processMoveToObjectStorage } from './handlers/move-to-object-storage' import { processVideoFileImport } from './handlers/video-file-import' import { processVideoImport } from './handlers/video-import' import { processVideoLiveEnding } from './handlers/video-live-ending' +import { processVideoStudioEdition } from './handlers/video-studio-edition' import { processVideoTranscoding } from './handlers/video-transcoding' import { processVideosViewsStats } from './handlers/video-views-stats' @@ -53,6 +57,8 @@ type CreateJobArgument = { type: 'actor-keys', payload: ActorKeysPayload } | { type: 'video-redundancy', payload: VideoRedundancyPayload } | { type: 'delete-resumable-upload-meta-file', payload: DeleteResumableUploadMetaFilePayload } | + { type: 'video-studio-edition', payload: VideoStudioEditionPayload } | + { type: 'manage-video-torrent', payload: ManageVideoTorrentPayload } | { type: 'move-to-object-storage', payload: MoveObjectStoragePayload } export type CreateJobOptions = { @@ -75,7 +81,9 @@ const handlers: { [id in JobType]: (job: Job) => Promise } = { 'video-live-ending': processVideoLiveEnding, 'actor-keys': processActorKeys, 'video-redundancy': processVideoRedundancy, - 'move-to-object-storage': processMoveToObjectStorage + 'move-to-object-storage': processMoveToObjectStorage, + 'manage-video-torrent': processManageVideoTorrent, + 'video-studio-edition': processVideoStudioEdition } const jobTypes: JobType[] = [ @@ -93,9 +101,13 @@ const jobTypes: JobType[] = [ 'video-redundancy', 'actor-keys', 'video-live-ending', - 'move-to-object-storage' + 'move-to-object-storage', + 'manage-video-torrent', + 'video-studio-edition' ] +const silentFailure = new Set([ 'activitypub-http-unicast' ]) + class JobQueue { private static instance: JobQueue @@ -142,7 +154,11 @@ class JobQueue { .catch(err => logger.error('Error in job queue processor %s.', handlerName, { err })) queue.on('failed', (job, err) => { - logger.error('Cannot execute job %d in queue %s.', job.id, handlerName, { payload: job.data, err }) + const logLevel = silentFailure.has(handlerName) + ? 'debug' + : 'error' + + logger.log(logLevel, 'Cannot execute job %d in queue %s.', job.id, handlerName, { payload: job.data, err }) }) queue.on('error', err => { @@ -180,7 +196,7 @@ class JobQueue { } createJobWithPromise (obj: CreateJobArgument, options: CreateJobOptions = {}) { - const queue = this.queues[obj.type] + const queue: Queue = this.queues[obj.type] if (queue === undefined) { logger.error('Unknown queue %s: cannot create job.', obj.type) return