Browse Source

Add ability to set a custom video import timeout

Chocobozzz 2 years ago
parent
commit
3eba7ab815

+ 3 - 0
config/default.yaml

@@ -470,6 +470,9 @@ import:
     # Amount of import jobs to execute in parallel
     concurrency: 1
 
+    # Set a custom video import timeout to not block import queue
+    timeout: '2 hours'
+
     # Classic HTTP or all sites supported by youtube-dl https://rg3.github.io/youtube-dl/supportedsites.html
     http:
       # We recommend to use a HTTP proxy if you enable HTTP import to prevent private URL access from this server

+ 3 - 0
config/production.yaml.example

@@ -478,6 +478,9 @@ import:
     # Amount of import jobs to execute in parallel
     concurrency: 1
 
+    # Set a custom video import timeout to not block import queue
+    timeout: '2 hours'
+
     # Classic HTTP or all sites supported by youtube-dl https://rg3.github.io/youtube-dl/supportedsites.html
     http:
       # We recommend to use a HTTP proxy if you enable HTTP import to prevent private URL access from this server

+ 2 - 2
server/initializers/checker-before-init.ts

@@ -31,8 +31,8 @@ function checkMissedConfig () {
     'transcoding.resolutions.0p', 'transcoding.resolutions.144p', 'transcoding.resolutions.240p', 'transcoding.resolutions.360p',
     'transcoding.resolutions.480p', 'transcoding.resolutions.720p', 'transcoding.resolutions.1080p', 'transcoding.resolutions.1440p',
     'transcoding.resolutions.2160p', 'video_studio.enabled',
-    'import.videos.http.enabled', 'import.videos.torrent.enabled', 'import.videos.concurrency', 'auto_blacklist.videos.of_users.enabled',
-    'trending.videos.interval_days',
+    'import.videos.http.enabled', 'import.videos.torrent.enabled', 'import.videos.concurrency', 'import.videos.timeout',
+    'auto_blacklist.videos.of_users.enabled', 'trending.videos.interval_days',
     'client.videos.miniature.display_author_avatar',
     'client.videos.miniature.prefer_author_display_name', 'client.menu.login.redirect_on_single_external_auth',
     'defaults.publish.download_enabled', 'defaults.publish.comments_enabled', 'defaults.publish.privacy', 'defaults.publish.licence',

+ 1 - 0
server/initializers/config.ts

@@ -349,6 +349,7 @@ const CONFIG = {
   IMPORT: {
     VIDEOS: {
       get CONCURRENCY () { return config.get<number>('import.videos.concurrency') },
+      get TIMEOUT () { return parseDurationToMs(config.get<string>('import.videos.timeout')) },
 
       HTTP: {
         get ENABLED () { return config.get<boolean>('import.videos.http.enabled') },

+ 1 - 1
server/initializers/constants.ts

@@ -183,7 +183,7 @@ const JOB_TTL: { [id in JobType]: number } = {
   'video-file-import': 1000 * 3600, // 1 hour
   'video-transcoding': 1000 * 3600 * 48, // 2 days, transcoding could be long
   'video-studio-edition': 1000 * 3600 * 10, // 10 hours
-  'video-import': 1000 * 3600 * 2, // 2 hours
+  'video-import': CONFIG.IMPORT.VIDEOS.TIMEOUT,
   'email': 60000 * 10, // 10 minutes
   'actor-keys': 60000 * 20, // 20 minutes
   'videos-views-stats': undefined, // Unlimited

+ 1 - 1
server/lib/schedulers/geo-ip-update-scheduler.ts

@@ -6,7 +6,7 @@ export class GeoIPUpdateScheduler extends AbstractScheduler {
 
   private static instance: AbstractScheduler
 
-  protected schedulerIntervalMs = SCHEDULER_INTERVALS_MS.YOUTUBE_DL_UPDATE
+  protected schedulerIntervalMs = SCHEDULER_INTERVALS_MS.GEO_IP_UPDATE
 
   private constructor () {
     super()