+import { throttle } from 'lodash'
import { retryTransactionWrapper } from '@server/helpers/database-utils'
import { logger, loggerTagsFactory } from '@server/helpers/logger'
import { RUNNER_JOBS } from '@server/initializers/constants'
RunnerJobSuccessPayload,
RunnerJobType,
RunnerJobUpdatePayload,
+ RunnerJobVideoEditionTranscodingPayload,
+ RunnerJobVideoEditionTranscodingPrivatePayload,
RunnerJobVODAudioMergeTranscodingPayload,
RunnerJobVODAudioMergeTranscodingPrivatePayload,
RunnerJobVODHLSTranscodingPayload,
RunnerJobVODWebVideoTranscodingPayload,
RunnerJobVODWebVideoTranscodingPrivatePayload
} from '@shared/models'
-import { throttle } from 'lodash'
type CreateRunnerJobArg =
{
type: Extract<RunnerJobType, 'live-rtmp-hls-transcoding'>
payload: RunnerJobLiveRTMPHLSTranscodingPayload
privatePayload: RunnerJobLiveRTMPHLSTranscodingPrivatePayload
+ } |
+ {
+ type: Extract<RunnerJobType, 'video-edition-transcoding'>
+ payload: RunnerJobVideoEditionTranscodingPayload
+ privatePayload: RunnerJobVideoEditionTranscodingPrivatePayload
}
export abstract class AbstractJobHandler <C, U extends RunnerJobUpdatePayload, S extends RunnerJobSuccessPayload> {
}): Promise<MRunnerJob> {
const { priority, dependsOnRunnerJob } = options
+ logger.debug('Creating runner job', { options, ...this.lTags(options.type) })
+
const runnerJob = new RunnerJobModel({
...pick(options, [ 'type', 'payload', 'privatePayload' ]),