+ private addRepeatableJobs () {
+ this.queues['videos-views'].add({}, {
+ repeat: REPEAT_JOBS['videos-views']
+ }).catch(err => logger.error('Cannot add repeatable job.', { err }))
+
+ if (CONFIG.FEDERATION.VIDEOS.CLEANUP_REMOTE_INTERACTIONS) {
+ this.queues['activitypub-cleaner'].add({}, {
+ repeat: REPEAT_JOBS['activitypub-cleaner']
+ }).catch(err => logger.error('Cannot add repeatable job.', { err }))
+ }
+ }
+
+ private filterJobTypes (jobType?: JobType) {
+ if (!jobType) return jobTypes
+
+ return jobTypes.filter(t => t === jobType)
+ }
+
+ private getJobConcurrency (jobType: JobType) {
+ if (jobType === 'video-transcoding') return CONFIG.TRANSCODING.CONCURRENCY
+ if (jobType === 'video-import') return CONFIG.IMPORT.VIDEOS.CONCURRENCY
+
+ return JOB_CONCURRENCY[jobType]
+ }
+