private async Task <Response> SaveScheduledJobs() { Analytics.TrackEventAsync(Category.Admin, Action.Update, "Update ScheduledJobs", Username, CookieHelper.GetAnalyticClientId(Cookies)); var settings = this.Bind <ScheduledJobsSettings>(); if (!string.IsNullOrEmpty(settings.RecentlyAddedCron)) { // Validate CRON var isValid = CronExpression.IsValidExpression(settings.RecentlyAddedCron); if (!isValid) { return(Response.AsJson(new JsonResponseModel { Result = false, Message = $"CRON {settings.RecentlyAddedCron} is not valid. Please ensure you are using a valid CRON." })); } } var result = await ScheduledJobSettings.SaveSettingsAsync(settings); return(Response.AsJson(result ? new JsonResponseModel { Result = true } : new JsonResponseModel { Result = false, Message = "Could not save to Db Please check the logs" })); }
private async Task <Response> SaveScheduledJobs() { Analytics.TrackEventAsync(Category.Admin, Action.Update, "Update ScheduledJobs", Username, CookieHelper.GetAnalyticClientId(Cookies)); var settings = this.Bind <ScheduledJobsSettings>(); var result = await ScheduledJobSettings.SaveSettingsAsync(settings); return(Response.AsJson(result ? new JsonResponseModel { Result = true } : new JsonResponseModel { Result = false, Message = "Could not save to Db Please check the logs" })); }
private void UpdateScheduledJobs() { try { var settings = ScheduledJobSettings.GetSettings(); settings.PlexUserChecker = 24; settings.PlexContentCacher = 60; ScheduledJobSettings.SaveSettings(settings); } catch (Exception e) { Logger.Fatal("Exception when migrating Version 1.10.0 (UpdateScheduledJobs)"); Logger.Fatal(e); } }
private async Task <Negotiator> GetScheduledJobs() { var s = await ScheduledJobSettings.GetSettingsAsync(); var allJobs = await JobRecorder.GetJobsAsync(); var jobsDict = allJobs.ToDictionary(k => k.Name, v => v.LastRun); var model = new ScheduledJobsViewModel { CouchPotatoCacher = s.CouchPotatoCacher, PlexAvailabilityChecker = s.PlexAvailabilityChecker, SickRageCacher = s.SickRageCacher, SonarrCacher = s.SonarrCacher, StoreBackup = s.StoreBackup, StoreCleanup = s.StoreCleanup, JobRecorder = jobsDict }; return(View["SchedulerSettings", model]); }
private async Task <Negotiator> GetScheduledJobs() { var s = await ScheduledJobSettings.GetSettingsAsync(); var allJobs = await JobRecorder.GetJobsAsync(); var dict = new Dictionary <string, DateTime>(); foreach (var j in allJobs) { DateTime dt; if (dict.TryGetValue(j.Name, out dt)) { // We already have the key... Somehow, we should have never got this record. } else { dict.Add(j.Name, j.LastRun); } } var model = new ScheduledJobsViewModel { CouchPotatoCacher = s.CouchPotatoCacher, PlexAvailabilityChecker = s.PlexAvailabilityChecker, SickRageCacher = s.SickRageCacher, SonarrCacher = s.SonarrCacher, StoreBackup = s.StoreBackup, StoreCleanup = s.StoreCleanup, JobRecorder = dict, RecentlyAddedCron = s.RecentlyAddedCron, PlexContentCacher = s.PlexContentCacher, FaultQueueHandler = s.FaultQueueHandler, PlexEpisodeCacher = s.PlexEpisodeCacher, PlexUserChecker = s.PlexUserChecker, UserRequestLimitResetter = s.UserRequestLimitResetter }; return(View["SchedulerSettings", model]); }