From 65418c0495d4f8e545277f532710b9bbfdf9db33 Mon Sep 17 00:00:00 2001 From: glax Date: Fri, 5 Sep 2025 01:13:31 +0200 Subject: [PATCH] Max Worker Concurrency --- API/Tranga.cs | 6 ++++++ API/TrangaSettings.cs | 2 ++ 2 files changed, 8 insertions(+) diff --git a/API/Tranga.cs b/API/Tranga.cs index 395d42b..9869582 100644 --- a/API/Tranga.cs +++ b/API/Tranga.cs @@ -125,6 +125,12 @@ public static class Tranga return; } Action afterWorkCallback = AfterWork(worker, callback); + + while (RunningWorkers.Count > Settings.MaxConcurrentWorkers) + { + Log.Warn($"{worker}: Max worker concurrency reached ({Settings.MaxConcurrentWorkers})! Waiting {Settings.WorkCycleTimeoutMs}ms..."); + Thread.Sleep(Settings.WorkCycleTimeoutMs); + } if (worker is BaseWorkerWithContext mangaContextWorker) { diff --git a/API/TrangaSettings.cs b/API/TrangaSettings.cs index 679186d..7cd24d6 100644 --- a/API/TrangaSettings.cs +++ b/API/TrangaSettings.cs @@ -52,6 +52,8 @@ public struct TrangaSettings() public int MaxConcurrentDownloads { get; set; } = 5; + public int MaxConcurrentWorkers { get; set; } = 10; + public static TrangaSettings Load() { if (!File.Exists(settingsFilePath))