Skip to content

ToolWheelDE/JobManager

Repository files navigation

ToolWheel JobManager

Dieses Repository enthält Erweiterungen, Implementierungen und Hilfsbibliotheken für den Job-Manager von ToolWheel. Ziel ist eine modulare, erweiterbare und testbare Infrastruktur zum Definieren, Planen, Ausführen und Absichern (Resilience) von Hintergrund-Jobs.

Kurzüberblick

  • Ziel-Framework: net8.0 (alle Projekte targeten .NET 8)
  • Modularer Aufbau: Abstraktionen, Kernimplementierungen, Scheduler, Resilience‑Strategien
  • Paketierbar: Einige Module sind als NuGet‑Pakete vorgesehen (z. B. ToolWheel.Extensions.JobManager)

Projekte und ihre Aufgaben

  • ToolWheel.Extensions.JobManager.Abstraction

    • Zweck: Public API, Verträge und DTOs
    • Enthält: Interfaces wie IJob, IJobExecutor, JobDescription sowie Konfigurationsmodelle
    • Keine konkreten Implementierungen — Konsumenten implementieren diese Verträge
  • ToolWheel.Extensions.JobManager

    • Zweck: Kernbibliothek mit Basisklassen und Default‑Implementierungen
    • Enthält: Options/Configuration Models (z. B. JobManagerOptions), DI‑Extensions und In‑Memory Defaults
    • Liefert übliche Helfer zur Integration in Host‑Anwendungen
  • ToolWheel.Extensions.JobManager.Scheduler

    • Zweck: Scheduling/Triggering von Jobs
    • Enthält: Trigger‑Logik (Cron, FixedDelay, FixedRate, OneTime), Dispatcher,
  • ToolWheel.Extensions.JobManager.Resilience

    • Zweck: Robustheit und Fehlerbehandlung
    • Enthält: Retry‑Policies, Backoff/Jitter, Timeouts und Circuit‑Breaker‑Mechanismen (ggf. Integration mit Polly)

Kernfunktionen & Konzepte

  • Jobs: Implementierungen von IJob oder ähnlichen Abstraktionen, die die eigentliche Arbeitslogik enthalten
  • Executor: Koordiniert Ausführung, Logging, Metrics und Fehlerbehandlung für Jobs
  • Scheduler: Plant Ausführungen anhand von Triggern und respektiert Concurrency‑Limits
  • Resilience: Policies (Retries, Timeouts, Circuit Breaker) schützen gegen transient Failures
  • DI/Configuration: IServiceCollection‑Extensions vereinfachen die Integration in Host‑Apps

Beispiel (DI‑Registrierung)

// In Program.cs
var builder = Hosting.CreateDefaultBuilder(args);

builder.Services.AddJobManager() // aus ToolWheel.Extensions.JobManager

var app = builder.Build();
app.Run();

Erweiterbarkeit

  • Neue Scheduler‑Typen, Trigger und Resilience‑Strategien lassen sich über die vorhandenen Abstraktionen hinzufügen.
  • Persistenz‑Integrationen (z. B. DB‑basierter JobStore) können implementiert und über DI eingebunden werden.

About

Job‑centric orchestration framework for background jobs in .NET Generic Host applications with triggers, guards, persistence and API.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors