public void Start(Configuration c) { CpSubscription?.Dispose(); SonarrSubscription?.Dispose(); SickRageSubscription?.Dispose(); Task.Factory.StartNew(() => CpCacher.Queued(-1)); Task.Factory.StartNew(() => SonarrCacher.Queued(-1)); Task.Factory.StartNew(() => SickRageCacher.Queued(-1)); CpSubscription = Observable.Interval(c.Intervals.Notification).Subscribe(CpCacher.Queued); SonarrSubscription = Observable.Interval(c.Intervals.Notification).Subscribe(SonarrCacher.Queued); SickRageSubscription = Observable.Interval(c.Intervals.Notification).Subscribe(SickRageCacher.Queued); }
private async Task <Response> ScheduleRun(string key) { if (key.Equals(JobNames.PlexCacher, StringComparison.CurrentCultureIgnoreCase)) { PlexContentCacher.CacheContent(); } if (key.Equals(JobNames.WatcherCacher, StringComparison.CurrentCultureIgnoreCase)) { WatcherCacher.Queued(); } if (key.Equals(JobNames.SonarrCacher, StringComparison.CurrentCultureIgnoreCase)) { SonarrCacher.Queued(); } if (key.Equals(JobNames.RadarrCacher, StringComparison.CurrentCultureIgnoreCase)) { RadarrCacher.Queued(); } if (key.Equals(JobNames.CpCacher, StringComparison.CurrentCultureIgnoreCase)) { CpCacher.Queued(); } if (key.Equals(JobNames.StoreBackup, StringComparison.CurrentCultureIgnoreCase)) { StoreBackup.Start(); } if (key.Equals(JobNames.SrCacher, StringComparison.CurrentCultureIgnoreCase)) { SrCacher.Queued(); } if (key.Equals(JobNames.PlexChecker, StringComparison.CurrentCultureIgnoreCase)) { AvailabilityChecker.Start(); } if (key.Equals(JobNames.StoreCleanup, StringComparison.CurrentCultureIgnoreCase)) { StoreCleanup.Start(); } if (key.Equals(JobNames.RequestLimitReset, StringComparison.CurrentCultureIgnoreCase)) { RequestLimit.Start(); } if (key.Equals(JobNames.EpisodeCacher, StringComparison.CurrentCultureIgnoreCase)) { EpisodeCacher.Start(); } if (key.Equals(JobNames.RecentlyAddedEmail, StringComparison.CurrentCultureIgnoreCase)) { RecentlyAdded.Start(); } if (key.Equals(JobNames.FaultQueueHandler, StringComparison.CurrentCultureIgnoreCase)) { FaultQueueHandler.Start(); } if (key.Equals(JobNames.PlexUserChecker, StringComparison.CurrentCultureIgnoreCase)) { RequestLimit.Start(); } return(Response.AsJson(new JsonResponseModel { Result = true })); }