ZeroAlloc.Scheduling.Telemetry 1.1.3

dotnet add package ZeroAlloc.Scheduling.Telemetry --version 1.1.3
                    
NuGet\Install-Package ZeroAlloc.Scheduling.Telemetry -Version 1.1.3
                    
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="ZeroAlloc.Scheduling.Telemetry" Version="1.1.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ZeroAlloc.Scheduling.Telemetry" Version="1.1.3" />
                    
Directory.Packages.props
<PackageReference Include="ZeroAlloc.Scheduling.Telemetry" />
                    
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 ZeroAlloc.Scheduling.Telemetry --version 1.1.3
                    
#r "nuget: ZeroAlloc.Scheduling.Telemetry, 1.1.3"
                    
#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 ZeroAlloc.Scheduling.Telemetry@1.1.3
                    
#: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=ZeroAlloc.Scheduling.Telemetry&version=1.1.3
                    
Install as a Cake Addin
#tool nuget:?package=ZeroAlloc.Scheduling.Telemetry&version=1.1.3
                    
Install as a Cake Tool

ZeroAlloc.Scheduling

NuGet Build License: MIT AOT GitHub Sponsors

ZeroAlloc.Scheduling is a source-generated background job scheduler for .NET 8 and .NET 10. Decorate any class with [Job] and the source generator wires up the executor, DI registration, and recurring startup automatically — no reflection, no convention scanning at runtime.

Install

The source generator is bundled into the main package — a single PackageReference is all you need:

dotnet add package ZeroAlloc.Scheduling
dotnet add package ZeroAlloc.Scheduling.InMemory   # or EfCore / Redis

The standalone ZeroAlloc.Scheduling.Generator package is still published for backwards compatibility with existing direct PackageReferences, but new consumers should reference only ZeroAlloc.Scheduling.

Example

// 1. Define a job — the generator picks it up automatically
[Job(Every = Every.Hour)]
public sealed class CleanupExpiredSessionsJob : IJob
{
    private readonly ISessionRepository _repo;
    public CleanupExpiredSessionsJob(ISessionRepository repo) => _repo = repo;

    public async ValueTask ExecuteAsync(JobContext ctx, CancellationToken ct)
        => await _repo.DeleteExpiredAsync(ct);
}

// 2. Register — generated AddCleanupExpiredSessionsJob() wires executor + recurring startup
services.AddScheduling()
        .WithInMemoryStore()
        .AddCleanupExpiredSessionsJob();

// 3. Enqueue a one-off job from application code
public class OrderService(IScheduler scheduler)
{
    public async Task CompleteOrderAsync(Order order, CancellationToken ct)
    {
        await ProcessAsync(order, ct);
        await scheduler.EnqueueAsync(new SendOrderConfirmationJob(order.Id), ct);
    }
}

Features

  • Source generator[Job] on a class emits a typed executor, DI extension method, and optional recurring startup (IHostedService)
  • Recurring jobs[Job(Cron = "0 * * * *")] or [Job(Every = Every.Hour)] — scheduled via Cronos at startup
  • Retry with backoff — exponential retry up to MaxAttempts (per-job or global); dead-letters after exhaustion
  • Multiple backends — InMemory (dev/test), EF Core (SQL Server / PostgreSQL / SQLite), Redis
  • Dashboard — embedded HTML/JS dashboard via app.MapJobsDashboard("/jobs")
  • Blazor component<JobsDashboard> Razor component for integration into Blazor apps
  • Mediator bridge[Job] + IRequest<Unit> auto-registers MediatorJobTypeExecutor<T>, routing execution through ZeroAlloc.Mediator pipeline behaviors
  • Native AOT compatible — no reflection at runtime; all dispatch resolved at compile time

Dashboard

An embedded HTML/JS dashboard — summary cards for each job state, a live-refreshing table with per-row requeue / delete actions, and fully responsive down to mobile widths.

app.MapJobsDashboard("/jobs");

// Optional: protect with auth
app.MapJobsDashboard("/jobs").RequireAuthorization("AdminPolicy");

Scheduler dashboard — desktop

Tablet (768 × 1024) and mobile (375 × 812) captures live in docs/screenshots/.

See Dashboard for the full endpoint reference and the Blazor component.

Packages

Package Description
ZeroAlloc.Scheduling Core interfaces, worker service, scheduler
ZeroAlloc.Scheduling.Generator Source generator (analyzer reference)
ZeroAlloc.Scheduling.InMemory In-process store for development and testing
ZeroAlloc.Scheduling.EfCore EF Core store (SQL Server, PostgreSQL, SQLite)
ZeroAlloc.Scheduling.Redis Redis store for distributed deployments
ZeroAlloc.Scheduling.Dashboard Embedded HTML dashboard (MapJobsDashboard)
ZeroAlloc.Scheduling.Dashboard.Blazor Blazor component library
ZeroAlloc.Scheduling.Mediator ZeroAlloc.Mediator bridge

Documentation

Page Description
Getting Started Install and schedule your first job in five minutes
Source Generator [Job], Every, Cron, generated extension methods
Backends InMemory, EF Core, and Redis store configuration
Dashboard Embedded HTML dashboard and Blazor component
Mediator Bridge Route job execution through ZeroAlloc.Mediator
Diagnostics ZASCH001 compiler warning reference
Performance Throughput, allocation profile, and tuning guide

License

MIT

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.3 0 5/7/2026
1.1.2 63 5/6/2026
1.1.1 83 5/3/2026
1.1.0 82 5/1/2026
1.0.3 90 5/1/2026
1.0.2 98 4/29/2026
1.0.1 95 4/29/2026
1.0.0 93 4/28/2026