From 7e1c65b470c43f3c0265cd9e8f6c5f3ecc5fd174 Mon Sep 17 00:00:00 2001 From: Glax Date: Fri, 16 May 2025 15:15:34 +0200 Subject: [PATCH] Optimize requests for JobStarter --- API/Tranga.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/API/Tranga.cs b/API/Tranga.cs index 150a12c..3cc65b8 100644 --- a/API/Tranga.cs +++ b/API/Tranga.cs @@ -116,7 +116,8 @@ public static class Tranga foreach (EntityEntry entityEntry in context.ChangeTracker.Entries().ToArray()) entityEntry.Reload(); //Update finished Jobs to new states - List completedJobs = context.Jobs.Where(j => j.state == JobState.Completed).ToList(); + context.Jobs.Load(); + List completedJobs = context.Jobs.Local.Where(j => j.state == JobState.Completed).ToList(); foreach (Job completedJob in completedJobs) if (completedJob.RecurrenceMs <= 0) context.Jobs.Remove(completedJob); @@ -125,7 +126,7 @@ public static class Tranga completedJob.state = JobState.CompletedWaiting; completedJob.LastExecution = DateTime.UtcNow; } - List failedJobs = context.Jobs.Where(j => j.state == JobState.Failed).ToList(); + List failedJobs = context.Jobs.Local.Where(j => j.state == JobState.Failed).ToList(); foreach (Job failedJob in failedJobs) { failedJob.Enabled = false; @@ -133,9 +134,9 @@ public static class Tranga } //Retrieve waiting and due Jobs - List waitingJobs = context.Jobs.Where(j => + List waitingJobs = context.Jobs.Local.Where(j => j.Enabled && (j.state == JobState.FirstExecution || j.state == JobState.CompletedWaiting)).ToList(); - List runningJobs = context.Jobs.Where(j => j.state == JobState.Running).ToList(); + List runningJobs = context.Jobs.Local.Where(j => j.state == JobState.Running).ToList(); List dueJobs = waitingJobs.Where(j => j.NextExecution < DateTime.UtcNow).ToList(); List busyConnectors = GetBusyConnectors(runningJobs); @@ -203,6 +204,7 @@ public static class Tranga return busyConnectors.Contains(mangaConnector) == false; return true; }) + .DistinctBy(j => j.JobType) .ToList(); private static MangaConnector? GetJobConnector(Job job)