diff --git a/Wabbajack.BuildServer/JobManager.cs b/Wabbajack.BuildServer/JobManager.cs index 30fde1d4..33ebfdde 100644 --- a/Wabbajack.BuildServer/JobManager.cs +++ b/Wabbajack.BuildServer/JobManager.cs @@ -71,9 +71,9 @@ namespace Wabbajack.BuildServer while (true) { await KillOrphanedJobs(); - await ScheduledJob(TimeSpan.FromHours(2)); - await ScheduledJob(TimeSpan.FromMinutes(30)); - await ScheduledJob(TimeSpan.FromHours(2)); + await ScheduledJob(TimeSpan.FromHours(2), Job.JobPriority.High); + await ScheduledJob(TimeSpan.FromMinutes(30), Job.JobPriority.High); + await ScheduledJob(TimeSpan.FromHours(2), Job.JobPriority.Low); await Task.Delay(10000); } } @@ -100,7 +100,7 @@ namespace Wabbajack.BuildServer } } - private async Task ScheduledJob(TimeSpan span) where T : AJobPayload, new() + private async Task ScheduledJob(TimeSpan span, Job.JobPriority priority) where T : AJobPayload, new() { try { @@ -117,6 +117,7 @@ namespace Wabbajack.BuildServer } await Db.Jobs.InsertOneAsync(new Job { + Priority = priority, Payload = new T() }); } diff --git a/Wabbajack.BuildServer/Models/Jobs/EnqueueAllArchives.cs b/Wabbajack.BuildServer/Models/Jobs/EnqueueAllArchives.cs index cc77cfb2..cef07feb 100644 --- a/Wabbajack.BuildServer/Models/Jobs/EnqueueAllArchives.cs +++ b/Wabbajack.BuildServer/Models/Jobs/EnqueueAllArchives.cs @@ -26,7 +26,7 @@ namespace Wabbajack.BuildServer.Models.Jobs { try { - await ValidateList(db, list, queue); + await EnqueueFromList(db, list, queue); } catch (Exception ex) { @@ -38,7 +38,7 @@ namespace Wabbajack.BuildServer.Models.Jobs return JobResult.Success(); } - private static async Task ValidateList(DBContext db, ModlistMetadata list, WorkQueue queue) + private static async Task EnqueueFromList(DBContext db, ModlistMetadata list, WorkQueue queue) { var existing = await db.ModListStatus.FindOneAsync(l => l.Id == list.Links.MachineURL); @@ -77,7 +77,7 @@ namespace Wabbajack.BuildServer.Models.Jobs Utils.Log($"Found {missing.Count} missing archives, enqueing indexing jobs"); - var jobs = missing.Select(a => new Job {Payload = new IndexJob {Archive = a}}); + var jobs = missing.Select(a => new Job {Payload = new IndexJob {Archive = a}, Priority = Job.JobPriority.Low}); Utils.Log($"Writing jobs to the DB"); await db.Jobs.InsertManyAsync(jobs, new InsertManyOptions {IsOrdered = false});