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
<PackageReference Include="LoomKit.Jobs.Abstractions" Version="10.0.1" />
<PackageVersion Include="LoomKit.Jobs.Abstractions" Version="10.0.1" />
<PackageReference Include="LoomKit.Jobs.Abstractions" />
paket add LoomKit.Jobs.Abstractions --version 10.0.1
#r "nuget: LoomKit.Jobs.Abstractions, 10.0.1"
#:package LoomKit.Jobs.Abstractions@10.0.1
#addin nuget:?package=LoomKit.Jobs.Abstractions&version=10.0.1
#tool nuget:?package=LoomKit.Jobs.Abstractions&version=10.0.1
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-freeJobQueueOptions(Builder)andJobConsumerOptions(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
| Product | Versions 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. |
-
net10.0
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
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 |