LoomKit.Jobs.Abstractions 10.0.1

dotnet add package LoomKit.Jobs.Abstractions --version 10.0.1
                    
NuGet\Install-Package LoomKit.Jobs.Abstractions -Version 10.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LoomKit.Jobs.Abstractions" Version="10.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LoomKit.Jobs.Abstractions" Version="10.0.1" />
                    
Directory.Packages.props
<PackageReference Include="LoomKit.Jobs.Abstractions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LoomKit.Jobs.Abstractions --version 10.0.1
                    
#r "nuget: LoomKit.Jobs.Abstractions, 10.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package LoomKit.Jobs.Abstractions@10.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LoomKit.Jobs.Abstractions&version=10.0.1
                    
Install as a Cake Addin
#tool nuget:?package=LoomKit.Jobs.Abstractions&version=10.0.1
                    
Install as a Cake Tool

LoomKit.Jobs.Abstractions

The interfaces, abstract base types, and models behind LoomKit.Jobs, split into their own lightweight package with no dependency on the concrete scheduler implementation.

Status: early stage. The public API may still change between versions — pin a commit/tag if you depend on it.

Why a separate package

LoomKit.Jobs ships the whole scheduler: the in-process queue, the consumer pipeline, cron rescheduling and retry middlewares, DI registration helpers, telemetry, etc. A project that only needs to define jobs and handlers — typically a domain/DDD class library that shouldn't know how those jobs get queued or consumed — doesn't need any of that.

This package holds only:

  • The marker/contract interfaces: IJob, IJob<TJobStatus>, IJobHandler<TJob, TJobStatus>, IJobQueue, IJobConsumer, IJobScheduler, IJobSchedulerSeeder.
  • The models every consumer touches: JobSchedule, CronJobSchedule, JobStatus/JobStatus<TResponse>.
  • The event args types raised by a scheduler: JobScheduledEventArgs, JobStartedEventArgs, JobEndedEventArgs, JobExceptionEventArgs.
  • The abstract base types meant to be extended: JobMiddleware<TJob, TJobStatus>, JobScheduler<TOptions>, JobSchedulerOptions, JobSchedulerOptionsBuilder<TOptions>, plus the concrete-but-implementation-free JobQueueOptions(Builder) and JobConsumerOptions(Builder).

Reference this package from a layer that should only depend on shapes (a domain project defining jobs/handlers and their status types, a library authoring a custom IJobScheduler/IJobQueue/JobMiddleware, a contracts-only shared project). Reference LoomKit.Jobs — which itself depends on this package — from your application/composition-root layer, where the concrete scheduler, its DI wiring, cron scheduling, and the built-in retry/reschedule middlewares actually get used.

Installation

dotnet add package LoomKit.Jobs.Abstractions

Available on nuget.org — a package version is published automatically for every vX.Y.Z tag pushed to this repo.

If you're building the full scheduler (queuing and consuming jobs, not just defining them), install LoomKit.Jobs instead — it brings this package in transitively.

Contents

Type Kind Purpose
IJob / IJob<TJobStatus> interface Marker for a job; the generic form pins its status type.
IJobHandler<TJob, TJobStatus> interface Implement one per job type — where the actual logic lives.
IJobQueue interface A named queue a job schedule is enqueued onto and awaited from.
IJobConsumer interface Pulls job schedules off a queue and runs them through the handler/middleware pipeline.
IJobScheduler interface The entry point application code calls: enqueue, list, and remove job schedules across all queues/consumers.
IJobSchedulerSeeder interface Implement to seed jobs at scheduler startup.
JobSchedule / CronJobSchedule model A scheduled occurrence of a job (one-shot/delayed, or recurring on a cron expression).
JobStatus / JobStatus<TResponse> model Mutable progress/result slot a handler writes to while it runs.
JobScheduledEventArgs / JobStartedEventArgs / JobEndedEventArgs / JobExceptionEventArgs model Event args raised by an IJobScheduler at each lifecycle point.
JobMiddleware<TJob, TJobStatus> abstract class Base type for cross-cutting pipeline behavior around a handler.
JobScheduler<TOptions> abstract class Base type for a custom IJobScheduler implementation.
JobSchedulerOptions / JobSchedulerOptionsBuilder<TOptions> abstract class Base type for a scheduler's configured options (queues, consumers, seeders) and its fluent builder.
JobQueueOptions / JobQueueOptionsBuilder class Configured options for a single queue (retry budget, poll interval) and its builder.
JobConsumerOptions / JobConsumerOptionsBuilder class Configured options for a single consumer (middleware pipeline, DI scope) and its builder, with the open-generic middleware-type validation built in.

None of these types do anything by themselves — see LoomKit.Jobs for the default, ready-to-use implementation (DefaultJobScheduler, InProcessJobQueue, JobConsumer, AddDefaultJobScheduler, cron scheduling, retry/reschedule middlewares, tracing, ...) and for usage examples.

License

MIT

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on LoomKit.Jobs.Abstractions:

Package Downloads
LoomKit.Jobs

A background job scheduling library for .NET: enqueue jobs onto named queues, process them through consumers with an extensible middleware pipeline, and schedule one-shot, delayed, or recurring cron jobs.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.0.1 152 8/25/2026