Koan.Scheduling 0.5.2

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

Sylin.Koan.Scheduling

Lightweight in-process scheduling primitives for Koan apps.

  • Target framework: net9.0
  • License: Apache-2.0

Capabilities

  • In-process scheduler hosted as a BackgroundService.
  • Triggers: OnStartup, FixedDelay (cron reserved for Phase 2).
  • Per-job policy via options, attribute hints, and task interfaces.
  • Bounded concurrency, per-run timeout, health updates via Koan.Core.

Install

dotnet add package Sylin.Koan.Scheduling

Minimal setup

// Program.cs
var builder = WebApplication.CreateBuilder(args);

// Register the scheduler via Koan.Core auto-registrar
// (KoanAutoRegistrar wires SchedulingOptions and the HostedService)
builder.Services.AddControllers();

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

appsettings.json

{
	"Koan": {
		"Scheduling": {
			"Enabled": true,
			"Jobs": {
				"cleanup": {
					"OnStartup": true,
					"FixedDelay": "00:00:10",
					"Timeout": "00:00:05",
					"MaxConcurrency": 1
				}
			}
		}
	}
}

Authoring tasks

public sealed class CleanupTask : IScheduledTask, IFixedDelay
{
		public string Id => "cleanup";
		public TimeSpan Delay => TimeSpan.FromSeconds(10);
		public Task RunAsync(CancellationToken ct) { /* work */ return Task.CompletedTask; }
}

Hints

  • Use IHasTimeout for bounded work; IHasMaxConcurrency to allow parallel runs.
  • Mark critical tasks with IIsCritical or [Scheduled(Critical = true)] to influence health/runbooks.
  • Prefer idempotent work; handle cancellations.

References

  • Technical reference: ./TECHNICAL.md
  • Engineering front door: /docs/engineering/index.md
Product Compatible and additional computed target framework versions.
.NET 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 was computed.  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 Koan.Scheduling:

Package Downloads
Koan.Web

ASP.NET Core integration for Koan: controller-first routing, health endpoints, well-known endpoints, and observability bootstrap.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.5.2 151 9/16/2025