From 4e4cd49a8958625b86ffa045098adb65a2a2d294 Mon Sep 17 00:00:00 2001
From: Timothy Baldridge <tbaldridge@gmail.com>
Date: Fri, 10 Jan 2020 21:34:01 -0700
Subject: [PATCH] Use job priorities

---
 Wabbajack.BuildServer/JobManager.cs                     | 9 +++++----
 Wabbajack.BuildServer/Models/Jobs/EnqueueAllArchives.cs | 6 +++---
 2 files changed, 8 insertions(+), 7 deletions(-)

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<GetNexusUpdatesJob>(TimeSpan.FromHours(2));
-                await ScheduledJob<UpdateModLists>(TimeSpan.FromMinutes(30));
-                await ScheduledJob<EnqueueAllArchives>(TimeSpan.FromHours(2));
+                await ScheduledJob<GetNexusUpdatesJob>(TimeSpan.FromHours(2), Job.JobPriority.High);
+                await ScheduledJob<UpdateModLists>(TimeSpan.FromMinutes(30), Job.JobPriority.High);
+                await ScheduledJob<EnqueueAllArchives>(TimeSpan.FromHours(2), Job.JobPriority.Low);
                 await Task.Delay(10000);
             }
         }
@@ -100,7 +100,7 @@ namespace Wabbajack.BuildServer
             }
         }
         
-        private async Task ScheduledJob<T>(TimeSpan span) where T : AJobPayload, new()
+        private async Task ScheduledJob<T>(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});