X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Frunners%2Fjob-handlers%2Fabstract-job-handler.ts;h=ca97d08816f3d4c1b2bbcd7814c2a0532ca38c29;hb=472170b4f923a52cceb595221864eab61d624d5b;hp=74b455107ea254fe95393421ac95a463dc1761cf;hpb=3a0c2a77b1a6626699514ddaf8135f4397175443;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/runners/job-handlers/abstract-job-handler.ts b/server/lib/runners/job-handlers/abstract-job-handler.ts index 74b455107..ca97d0881 100644 --- a/server/lib/runners/job-handlers/abstract-job-handler.ts +++ b/server/lib/runners/job-handlers/abstract-job-handler.ts @@ -1,4 +1,5 @@ -import { retryTransactionWrapper } from '@server/helpers/database-utils' +import { throttle } from 'lodash' +import { retryTransactionWrapper, saveInTransactionWithRetries } from '@server/helpers/database-utils' import { logger, loggerTagsFactory } from '@server/helpers/logger' import { RUNNER_JOBS } from '@server/initializers/constants' import { sequelizeTypescript } from '@server/initializers/database' @@ -11,9 +12,11 @@ import { RunnerJobLiveRTMPHLSTranscodingPayload, RunnerJobLiveRTMPHLSTranscodingPrivatePayload, RunnerJobState, + RunnerJobStudioTranscodingPayload, RunnerJobSuccessPayload, RunnerJobType, RunnerJobUpdatePayload, + RunnerJobVideoStudioTranscodingPrivatePayload, RunnerJobVODAudioMergeTranscodingPayload, RunnerJobVODAudioMergeTranscodingPrivatePayload, RunnerJobVODHLSTranscodingPayload, @@ -21,7 +24,6 @@ import { RunnerJobVODWebVideoTranscodingPayload, RunnerJobVODWebVideoTranscodingPrivatePayload } from '@shared/models' -import { throttle } from 'lodash' type CreateRunnerJobArg = { @@ -43,6 +45,11 @@ type CreateRunnerJobArg = type: Extract payload: RunnerJobLiveRTMPHLSTranscodingPayload privatePayload: RunnerJobLiveRTMPHLSTranscodingPrivatePayload + } | + { + type: Extract + payload: RunnerJobStudioTranscodingPayload + privatePayload: RunnerJobVideoStudioTranscodingPrivatePayload } export abstract class AbstractJobHandler { @@ -62,6 +69,8 @@ export abstract class AbstractJobHandler { const { priority, dependsOnRunnerJob } = options + logger.debug('Creating runner job', { options, ...this.lTags(options.type) }) + const runnerJob = new RunnerJobModel({ ...pick(options, [ 'type', 'payload', 'privatePayload' ]), @@ -130,6 +139,9 @@ export abstract class AbstractJobHandler { - return sequelizeTypescript.transaction(async transaction => { - await runnerJob.save({ transaction }) - }) - }) + await saveInTransactionWithRetries(runnerJob) const [ affectedCount ] = await RunnerJobModel.updateDependantJobsOf(runnerJob)