From 3eeb563ca1259dd473f8e50f6f0474af84bcbae7 Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 17 Jun 2025 19:55:54 +0200 Subject: [PATCH] Add Debug Statement to find slow operations in Job-Cycle --- API/Tranga.cs | 53 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/API/Tranga.cs b/API/Tranga.cs index ff2da30..e8c0904 100644 --- a/API/Tranga.cs +++ b/API/Tranga.cs @@ -200,23 +200,48 @@ public static class Tranga } } - private static List GetRunningJobs(this IQueryable jobs) => - jobs.Where(j => j.state == JobState.Running).ToList(); + private static List GetRunningJobs(this IQueryable jobs) + { + DateTime start = DateTime.UtcNow; + List ret = jobs.Where(j => j.state == JobState.Running).ToList(); + DateTime end = DateTime.UtcNow; + Log.Debug($"Getting running Jobs took {end.Subtract(start).TotalMilliseconds}ms)"); + return ret; + } - private static List GetWaitingJobs(this IQueryable jobs) => - jobs.Where(j => j.state == JobState.CompletedWaiting || j.state == JobState.FirstExecution) - .ToList(); + private static List GetWaitingJobs(this IQueryable jobs) + { + DateTime start = DateTime.UtcNow; + List ret = jobs.Where(j => j.state == JobState.CompletedWaiting || j.state == JobState.FirstExecution).ToList(); + DateTime end = DateTime.UtcNow; + Log.Debug($"Getting waiting Jobs took {end.Subtract(start).TotalMilliseconds}ms)"); + return ret; + } + - private static List FilterDueJobs(this List jobs) => - jobs.Where(j => j.NextExecution < DateTime.UtcNow) - .ToList(); + private static List FilterDueJobs(this List jobs) + { + DateTime start = DateTime.UtcNow; + List ret = jobs.Where(j => j.NextExecution < DateTime.UtcNow).ToList(); + DateTime end = DateTime.UtcNow; + Log.Debug($"Filtering Due Jobs took {end.Subtract(start).TotalMilliseconds}ms)"); + return ret; + } + - private static List FilterJobDependencies(this List jobs) => - jobs.Where(job => job.DependsOnJobs.All(j => j.IsCompleted)) - .ToList(); + private static List FilterJobDependencies(this List jobs) + { + DateTime start = DateTime.UtcNow; + List ret = jobs.Where(job => job.DependsOnJobs.All(j => j.IsCompleted)).ToList(); + DateTime end = DateTime.UtcNow; + Log.Debug($"Filtering Dependencies took {end.Subtract(start).TotalMilliseconds}ms)"); + return ret; + } + private static Dictionary>> GetJobsPerJobTypeAndConnector(this List jobs) { + DateTime start = DateTime.UtcNow; Dictionary>> ret = new(); foreach (Job job in jobs) { @@ -228,12 +253,15 @@ public static class Tranga ret[connector].Add(job.JobType, new()); ret[connector][job.JobType].Add(job); } + DateTime end = DateTime.UtcNow; + Log.Debug($"Fetching connector per Job for jobs took {end.Subtract(start).TotalMilliseconds}ms)"); return ret; } private static List MatchJobsRunningAndWaiting(Dictionary>> running, Dictionary>> waiting) { + DateTime start = DateTime.UtcNow; List ret = new(); foreach ((MangaConnector connector, Dictionary> jobTypeJobsWaiting) in waiting) { @@ -266,7 +294,8 @@ public static class Tranga } } } - + DateTime end = DateTime.UtcNow; + Log.Debug($"Getting eligible jobs (not held back by Connector) took {end.Subtract(start).TotalMilliseconds}ms)"); return ret; }