From 513853d92916dd50078a7c9c2825484d92e7e9cb Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 27 Nov 2024 13:43:38 +0100 Subject: [PATCH] Better safe-duration --- Tools/AutoClient/Modes/FolderStore/FileWorker.cs | 10 +++------- .../Modes/FolderStore/FolderWorkDispatcher.cs | 2 +- Tools/AutoClient/Modes/FolderStore/PurchaseInfo.cs | 14 ++++++++++++-- Tools/AutoClient/Program.cs | 9 ++++----- 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/Tools/AutoClient/Modes/FolderStore/FileWorker.cs b/Tools/AutoClient/Modes/FolderStore/FileWorker.cs index 5dfa83af..0b1cc476 100644 --- a/Tools/AutoClient/Modes/FolderStore/FileWorker.cs +++ b/Tools/AutoClient/Modes/FolderStore/FileWorker.cs @@ -38,13 +38,9 @@ namespace AutoClient.Modes.FolderStore { try { - Log($"Updating for '{sourceFilename}'..."); - if (IsCurrentlyRunning() && UpdatedRecently()) - { - Log("Is running, was recently checked. Skip."); - return; - } + if (IsCurrentlyRunning() && UpdatedRecently()) return; + Log($"Updating for '{sourceFilename}'..."); var cid = await EnsureCid(); await EnsureRecentPurchase(cid); SaveState(); @@ -62,7 +58,7 @@ namespace AutoClient.Modes.FolderStore private bool UpdatedRecently() { var now = DateTime.UtcNow; - return State.LastUpdate + TimeSpan.FromHours(1) > now; + return State.LastUpdate + TimeSpan.FromMinutes(15) > now; } private async Task EnsureCid() diff --git a/Tools/AutoClient/Modes/FolderStore/FolderWorkDispatcher.cs b/Tools/AutoClient/Modes/FolderStore/FolderWorkDispatcher.cs index a0f064d2..4bf02738 100644 --- a/Tools/AutoClient/Modes/FolderStore/FolderWorkDispatcher.cs +++ b/Tools/AutoClient/Modes/FolderStore/FolderWorkDispatcher.cs @@ -35,8 +35,8 @@ namespace AutoClient.Modes.FolderStore log.Log(""); log.Log("Max number of busy workers reached. Waiting until contracts are started before creating any more."); log.Log(""); - Thread.Sleep(10000); ResetIndex(); + Thread.Sleep(TimeSpan.FromMinutes(1)); } var file = new FileIndex(files[index], index); diff --git a/Tools/AutoClient/Modes/FolderStore/PurchaseInfo.cs b/Tools/AutoClient/Modes/FolderStore/PurchaseInfo.cs index 7cbc1e6c..b0711250 100644 --- a/Tools/AutoClient/Modes/FolderStore/PurchaseInfo.cs +++ b/Tools/AutoClient/Modes/FolderStore/PurchaseInfo.cs @@ -2,7 +2,17 @@ { public class PurchaseInfo { - public TimeSpan PurchaseDurationTotal { get; set; } - public TimeSpan PurchaseDurationSafe { get; set; } + public PurchaseInfo(TimeSpan purchaseDurationTotal, TimeSpan purchaseDurationSafe) + { + PurchaseDurationTotal = purchaseDurationTotal; + PurchaseDurationSafe = purchaseDurationSafe; + + if (PurchaseDurationTotal < TimeSpan.Zero) throw new Exception(nameof(PurchaseDurationTotal)); + if (PurchaseDurationSafe < TimeSpan.Zero) throw new Exception(nameof(PurchaseDurationSafe)); + if (PurchaseDurationTotal < PurchaseDurationSafe) throw new Exception("TotalDuration < SafeDuration"); + } + + public TimeSpan PurchaseDurationTotal { get; } + public TimeSpan PurchaseDurationSafe { get; } } } diff --git a/Tools/AutoClient/Program.cs b/Tools/AutoClient/Program.cs index 05d52a5b..e22c4198 100644 --- a/Tools/AutoClient/Program.cs +++ b/Tools/AutoClient/Program.cs @@ -68,11 +68,10 @@ public class Program { if (app.Config.ContractDurationMinutes - 1 < 5) throw new Exception("Contract duration config option not long enough!"); - return new FolderStoreMode(app, app.Config.FolderToStore, new PurchaseInfo - { - PurchaseDurationTotal = TimeSpan.FromMinutes(app.Config.ContractDurationMinutes), - PurchaseDurationSafe = TimeSpan.FromMinutes(app.Config.ContractDurationMinutes - 1), - }); + return new FolderStoreMode(app, app.Config.FolderToStore, new PurchaseInfo( + purchaseDurationTotal: TimeSpan.FromMinutes(app.Config.ContractDurationMinutes), + purchaseDurationSafe: TimeSpan.FromMinutes(app.Config.ContractDurationMinutes - 120) + )); } private async Task CreateCodexInstances()