Soenneker.Flywheel.Core 4.0.8

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Soenneker.Flywheel.Core --version 4.0.8
                    
NuGet\Install-Package Soenneker.Flywheel.Core -Version 4.0.8
                    
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="Soenneker.Flywheel.Core" Version="4.0.8" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Soenneker.Flywheel.Core" Version="4.0.8" />
                    
Directory.Packages.props
<PackageReference Include="Soenneker.Flywheel.Core" />
                    
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 Soenneker.Flywheel.Core --version 4.0.8
                    
#r "nuget: Soenneker.Flywheel.Core, 4.0.8"
                    
#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 Soenneker.Flywheel.Core@4.0.8
                    
#: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=Soenneker.Flywheel.Core&version=4.0.8
                    
Install as a Cake Addin
#tool nuget:?package=Soenneker.Flywheel.Core&version=4.0.8
                    
Install as a Cake Tool

NuGet Publish Downloads Build and test CodeQL

Soenneker.Flywheel.Core

Background jobs for .NET with Redis storage, retries, scheduling, and job chains.

Background work. Everything in view.

Queue a typed job, coordinate workers across instances, and follow each execution in the live Blazor dashboard.

Flywheel dashboard with live activity, job states, and searchable executions

The optional Flywheel Dashboard, shown with illustrative demo data.

Explore Flywheel · Dashboard · Run the demo

Setup

Requires .NET 10 and Redis 6.0.9 or newer. Add these packages to your app:

dotnet add package Soenneker.Flywheel.Core
dotnet add package Soenneker.Flywheel.Redis
dotnet add package Soenneker.Flywheel.Generators

Add PrivateAssets="all" to the Generators package reference in your project file.

Usage

In an ASP.NET Core app's Program.cs, register Flywheel and enqueue a job:

using Soenneker.Flywheel.Core.Attributes;
using Soenneker.Flywheel.Core.Registrars;
using Soenneker.Flywheel.Core.Services.Abstract;
using Soenneker.Flywheel.Generated;
using Soenneker.Flywheel.Redis;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddFlywheel(options => options.Workers = 4)
    .AddRedis(options => options.ConnectionString = "localhost:6379")
    .AddGeneratedJobs();

var app = builder.Build();
var client = app.Services.GetRequiredService<IJobClient>();

await client.Enqueue(FlywheelJobs.MessageJobs_Write,
    new Message("Hello from Flywheel"));

await app.RunAsync();

public sealed record Message(string Text);

public sealed class MessageJobs(ILogger<MessageJobs> logger)
{
    [FlywheelJob("message.write.v1")]
    public Task Write(Message message, CancellationToken cancellationToken)
    {
        logger.LogInformation("{Message}", message.Text);
        return Task.CompletedTask;
    }
}

Enqueue returns after saving the job. Workers run it in the background. In other services, inject IJobClient to submit jobs.

Queue and schedule jobs

Use IJobClient for immediate, delayed, scheduled, recurring, cron, or chained jobs:

await client.Enqueue(FlywheelJobs.MessageJobs_Write, new Message("Later"),
    delay: TimeSpan.FromMinutes(10));

await client.Recurring("hourly-message", FlywheelJobs.MessageJobs_Write,
    new Message("Every hour"), TimeSpan.FromHours(1));

await client.Cron("weekday-message", FlywheelJobs.MessageJobs_Write,
    new Message("Good morning"), "0 9 * * MON-FRI",
    timeZoneId: "America/Chicago");

See IJobClient for the full API.

Jobs can run more than once; make handlers safe to retry and pass cancellation tokens to async work. Keep job names stable. Reusing a recurring or cron schedule ID leaves the existing schedule unchanged.

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 Soenneker.Flywheel.Core:

Package Downloads
Soenneker.Flywheel.Redis

Redis-backed storage and distributed coordination for Soenneker Flywheel.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
5.0.2 0 9/8/2026
5.0.1 0 9/8/2026
4.0.21 0 9/8/2026
4.0.20 18 9/7/2026
4.0.18 41 9/7/2026
4.0.17 39 9/7/2026
4.0.16 41 9/7/2026
4.0.15 29 9/7/2026
4.0.14 66 9/7/2026
4.0.13 43 9/7/2026
4.0.12 45 9/7/2026
4.0.11 44 9/7/2026
4.0.10 46 9/7/2026
4.0.9 47 9/6/2026
4.0.8 37 9/6/2026
4.0.7 48 9/6/2026
4.0.6 38 9/6/2026
4.0.5 45 9/6/2026
4.0.4 46 9/6/2026
4.0.3 43 9/6/2026
Loading failed