This commit is contained in:
TidusJar 2016-11-02 21:34:33 +00:00
parent 220004f432
commit 683e4831c4
114 changed files with 5916 additions and 5885 deletions

View file

@ -1,4 +1,5 @@
#region Copyright #region Copyright
// /************************************************************************ // /************************************************************************
// Copyright (c) 2016 Jamie Rees // Copyright (c) 2016 Jamie Rees
// File: Scheduler.cs // File: Scheduler.cs
@ -23,18 +24,17 @@
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// ************************************************************************/ // ************************************************************************/
#endregion #endregion
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using NLog; using NLog;
using PlexRequests.Core; using PlexRequests.Core;
using PlexRequests.Core.SettingModels; using PlexRequests.Core.SettingModels;
using PlexRequests.Services.Jobs; using PlexRequests.Services.Jobs;
using PlexRequests.UI.Helpers; using PlexRequests.UI.Helpers;
using Quartz; using Quartz;
using Quartz.Impl; using Quartz.Impl;
@ -61,20 +61,17 @@ namespace PlexRequests.UI.Jobs
var jobList = new List<IJobDetail> var jobList = new List<IJobDetail>
{ {
JobBuilder.Create<PlexAvailabilityChecker>().WithIdentity("PlexAvailabilityChecker", "Plex").Build(), JobBuilder.Create<PlexAvailabilityChecker>().WithIdentity("PlexAvailabilityChecker", "Plex").Build(),
JobBuilder.Create<PlexEpisodeCacher>().WithIdentity("PlexEpisodeCacher", "Cache").Build(), JobBuilder.Create<PlexEpisodeCacher>().WithIdentity("PlexEpisodeCacher", "Cache").Build(),
JobBuilder.Create<SickRageCacher>().WithIdentity("SickRageCacher", "Cache").Build(), JobBuilder.Create<SickRageCacher>().WithIdentity("SickRageCacher", "Cache").Build(),
JobBuilder.Create<SonarrCacher>().WithIdentity("SonarrCacher", "Cache").Build(), JobBuilder.Create<SonarrCacher>().WithIdentity("SonarrCacher", "Cache").Build(),
JobBuilder.Create<CouchPotatoCacher>().WithIdentity("CouchPotatoCacher", "Cache").Build(), JobBuilder.Create<CouchPotatoCacher>().WithIdentity("CouchPotatoCacher", "Cache").Build(),
JobBuilder.Create<StoreBackup>().WithIdentity("StoreBackup", "Database").Build(), JobBuilder.Create<StoreBackup>().WithIdentity("StoreBackup", "Database").Build(),
JobBuilder.Create<StoreCleanup>().WithIdentity("StoreCleanup", "Database").Build(), JobBuilder.Create<StoreCleanup>().WithIdentity("StoreCleanup", "Database").Build(),
JobBuilder.Create<UserRequestLimitResetter>().WithIdentity("UserRequestLimiter", "Request").Build(), JobBuilder.Create<UserRequestLimitResetter>().WithIdentity("UserRequestLimiter", "Request").Build(),
JobBuilder.Create<RecentlyAdded>().WithIdentity("RecentlyAddedModel", "Email").Build()
}; };
if (!string.IsNullOrEmpty(s.RecentlyAddedCron))
{
jobList.Add(JobBuilder.Create<RecentlyAdded>().WithIdentity("RecentlyAddedModel", "Email").Build());
}
jobs.AddRange(jobList); jobs.AddRange(jobList);
@ -115,6 +112,47 @@ namespace PlexRequests.UI.Jobs
var settingsService = Service.Resolve<ISettingsService<ScheduledJobsSettings>>(); var settingsService = Service.Resolve<ISettingsService<ScheduledJobsSettings>>();
var s = settingsService.GetSettings(); var s = settingsService.GetSettings();
if (s.CouchPotatoCacher == 0)
{
s.CouchPotatoCacher = 60;
}
if (s.PlexAvailabilityChecker == 0)
{
s.PlexAvailabilityChecker = 60;
}
if (s.PlexEpisodeCacher == 0)
{
s.PlexEpisodeCacher = 11;
}
if (string.IsNullOrEmpty(s.RecentlyAddedCron))
{
var cron =
(Quartz.Impl.Triggers.CronTriggerImpl)
CronScheduleBuilder.WeeklyOnDayAndHourAndMinute(DayOfWeek.Friday, 7, 0).Build();
s.RecentlyAddedCron = cron.CronExpressionString; // Weekly CRON at 7 am on Mondays
}
if (s.SickRageCacher == 0)
{
s.SickRageCacher = 60;
}
if (s.SonarrCacher == 0)
{
s.SonarrCacher = 60;
}
if (s.StoreBackup == 0)
{
s.StoreBackup = 24;
}
if (s.StoreCleanup == 0)
{
s.StoreCleanup = 24;
}
if (s.UserRequestLimitResetter == 0)
{
s.UserRequestLimitResetter = 12;
}
var triggers = new List<ITrigger>(); var triggers = new List<ITrigger>();
var plexAvailabilityChecker = var plexAvailabilityChecker =
@ -175,22 +213,15 @@ namespace PlexRequests.UI.Jobs
.Build(); .Build();
var cronJob = string.IsNullOrEmpty(s.RecentlyAddedCron); var rencentlyAdded =
if (!cronJob) TriggerBuilder.Create()
{ .WithIdentity("RecentlyAddedModel", "Email")
var rencentlyAdded = .StartNow()
TriggerBuilder.Create() .WithCronSchedule(s.RecentlyAddedCron)
.WithIdentity("RecentlyAddedModel", "Email") .WithSimpleSchedule(x => x.WithIntervalInHours(2).RepeatForever())
.StartNow() .Build();
.WithCronSchedule(s.RecentlyAddedCron)
.WithSimpleSchedule(x => x.WithIntervalInHours(2).RepeatForever())
.Build();
triggers.Add(rencentlyAdded);
}
triggers.Add(rencentlyAdded);
triggers.Add(plexAvailabilityChecker); triggers.Add(plexAvailabilityChecker);
triggers.Add(srCacher); triggers.Add(srCacher);
triggers.Add(sonarrCacher); triggers.Add(sonarrCacher);