From 9074941229858b3c20b6e2363993c6739abc9f26 Mon Sep 17 00:00:00 2001 From: Timothy Baldridge Date: Wed, 1 Jan 2020 19:04:57 -0700 Subject: [PATCH] Small server improvements --- Wabbajack.CacheServer/JobQueueEndpoints.cs | 8 ++++++++ Wabbajack.CacheServer/Jobs/IndexJob.cs | 1 + Wabbajack.CacheServer/ListValidationService.cs | 6 +++++- Wabbajack.CacheServer/NexusCacheModule.cs | 2 +- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Wabbajack.CacheServer/JobQueueEndpoints.cs b/Wabbajack.CacheServer/JobQueueEndpoints.cs index a0b03aad..a6615404 100644 --- a/Wabbajack.CacheServer/JobQueueEndpoints.cs +++ b/Wabbajack.CacheServer/JobQueueEndpoints.cs @@ -71,6 +71,14 @@ namespace Wabbajack.CacheServer } public static async Task StartJobQueue() + { + foreach (var task in Enumerable.Range(0, 4)) + { + var tsk = StartJobQueueInner(); + } + } + + private static async Task StartJobQueueInner() { while (true) { diff --git a/Wabbajack.CacheServer/Jobs/IndexJob.cs b/Wabbajack.CacheServer/Jobs/IndexJob.cs index acf38dc8..a507d07b 100644 --- a/Wabbajack.CacheServer/Jobs/IndexJob.cs +++ b/Wabbajack.CacheServer/Jobs/IndexJob.cs @@ -66,6 +66,7 @@ namespace Wabbajack.CacheServer.Jobs File.Delete(downloadDest); else File.Move(downloadDest, to_path); + Utils.DeleteDirectory(Path.Combine(Server.Config.Indexer.DownloadDir, folder)); } return JobResult.Success(); diff --git a/Wabbajack.CacheServer/ListValidationService.cs b/Wabbajack.CacheServer/ListValidationService.cs index e3b3cdd6..6a7e9e2d 100644 --- a/Wabbajack.CacheServer/ListValidationService.cs +++ b/Wabbajack.CacheServer/ListValidationService.cs @@ -105,7 +105,7 @@ namespace Wabbajack.CacheServer } }).FireAndForget(); } - public static async Task ValidateLists() + public static async Task ValidateLists(bool skipIfNewer = true) { Utils.Log("Cleaning Nexus Cache"); var client = new HttpClient(); @@ -133,6 +133,10 @@ namespace Wabbajack.CacheServer private static async Task ValidateList(ModlistMetadata list, WorkQueue queue) { + var existing = await Server.Config.ListValidation.Connect().FindOneAsync(l => l.Id == list.Links.MachineURL); + if (existing != null && DateTime.Now - existing.DetailedStatus.Checked < TimeSpan.FromHours(2)) + return; + var modlist_path = Path.Combine(Consts.ModListDownloadFolder, list.Links.MachineURL + ExtensionManager.Extension); if (list.NeedsDownload(modlist_path)) diff --git a/Wabbajack.CacheServer/NexusCacheModule.cs b/Wabbajack.CacheServer/NexusCacheModule.cs index cd981b76..1dbececc 100644 --- a/Wabbajack.CacheServer/NexusCacheModule.cs +++ b/Wabbajack.CacheServer/NexusCacheModule.cs @@ -55,7 +55,7 @@ namespace Wabbajack.CacheServer return mods.Select(mod => new { game = game, mod = mod }); }).ToList(); - Utils.Log($"Getting update lits for {gameTasks.Count} games"); + Utils.Log($"Getting update list for {gameTasks.Count} games"); var purge = (await Task.WhenAll(gameTasks)) .SelectMany(i => i)