fix: only run scheduled mediaserver jobs that apply to the current mediaserver

This commit is contained in:
notfakie
2022-04-21 17:22:58 +12:00
parent 4470b65563
commit 791106a7f5

View File

@@ -1,4 +1,5 @@
import schedule from 'node-schedule'; import schedule from 'node-schedule';
import { MediaServerType } from '../constants/server';
import downloadTracker from '../lib/downloadtracker'; import downloadTracker from '../lib/downloadtracker';
import { plexFullScanner, plexRecentScanner } from '../lib/scanners/plex'; import { plexFullScanner, plexRecentScanner } from '../lib/scanners/plex';
import { radarrScanner } from '../lib/scanners/radarr'; import { radarrScanner } from '../lib/scanners/radarr';
@@ -21,19 +22,24 @@ export const scheduledJobs: ScheduledJob[] = [];
export const startJobs = (): void => { export const startJobs = (): void => {
const jobs = getSettings().jobs; const jobs = getSettings().jobs;
const mediaServerType = getSettings().main.mediaServerType;
if (mediaServerType === MediaServerType.PLEX) {
// Run recently added plex scan every 5 minutes // Run recently added plex scan every 5 minutes
scheduledJobs.push({ scheduledJobs.push({
id: 'plex-recently-added-scan', id: 'plex-recently-added-scan',
name: 'Plex Recently Added Scan', name: 'Plex Recently Added Scan',
type: 'process', type: 'process',
interval: 'short', interval: 'short',
job: schedule.scheduleJob(jobs['plex-recently-added-scan'].schedule, () => { job: schedule.scheduleJob(
jobs['plex-recently-added-scan'].schedule,
() => {
logger.info('Starting scheduled job: Plex Recently Added Scan', { logger.info('Starting scheduled job: Plex Recently Added Scan', {
label: 'Jobs', label: 'Jobs',
}); });
plexRecentScanner.run(); plexRecentScanner.run();
}), }
),
running: () => plexRecentScanner.status().running, running: () => plexRecentScanner.status().running,
cancelFn: () => plexRecentScanner.cancel(), cancelFn: () => plexRecentScanner.cancel(),
}); });
@@ -53,7 +59,10 @@ export const startJobs = (): void => {
running: () => plexFullScanner.status().running, running: () => plexFullScanner.status().running,
cancelFn: () => plexFullScanner.cancel(), cancelFn: () => plexFullScanner.cancel(),
}); });
} else if (
mediaServerType === MediaServerType.JELLYFIN ||
mediaServerType === MediaServerType.EMBY
) {
// Run recently added jellyfin sync every 5 minutes // Run recently added jellyfin sync every 5 minutes
scheduledJobs.push({ scheduledJobs.push({
id: 'jellyfin-recently-added-sync', id: 'jellyfin-recently-added-sync',
@@ -88,6 +97,7 @@ export const startJobs = (): void => {
running: () => jobJellyfinFullSync.status().running, running: () => jobJellyfinFullSync.status().running,
cancelFn: () => jobJellyfinFullSync.cancel(), cancelFn: () => jobJellyfinFullSync.cancel(),
}); });
}
// Run full radarr scan every 24 hours // Run full radarr scan every 24 hours
scheduledJobs.push({ scheduledJobs.push({