Refactor Controllers

SettingsController.cs

SearchController.cs

QueryController.cs

NotificationConnectorController.cs

MetadataFetcherController.cs

MangaConnectorController.cs

FileLibraryController

LibraryConnectors

WorkerController
This commit is contained in:
2025-07-02 19:54:44 +02:00
parent 57bb87120a
commit 91c91e4989
28 changed files with 527 additions and 753 deletions

View File

@ -13,7 +13,12 @@ public abstract class BaseWorker : Identifiable
internal WorkerExecutionState State { get; set; }
private static readonly CancellationTokenSource CancellationTokenSource = new(TimeSpan.FromMinutes(10));
protected ILog Log { get; init; }
public void Cancel() => CancellationTokenSource.Cancel();
public void Cancel()
{
this.State = WorkerExecutionState.Cancelled;
CancellationTokenSource.Cancel();
}
protected void Fail() => this.State = WorkerExecutionState.Failed;
public BaseWorker(IEnumerable<BaseWorker>? dependsOn = null)
@ -58,5 +63,6 @@ public enum WorkerExecutionState
Created = 64,
Waiting = 96,
Running = 128,
Completed = 192
Completed = 192,
Cancelled = 193
}

View File

@ -1,9 +1,9 @@
namespace API.Workers;
public interface IPeriodic<T> where T : BaseWorker
public interface IPeriodic
{
protected DateTime LastExecution { get; set; }
protected TimeSpan Interval { get; set; }
public TimeSpan Interval { get; set; }
public DateTime NextExecution => LastExecution.Add(Interval);
public bool IsDue => NextExecution <= DateTime.UtcNow;
}