Skip to main content

Scheduling primitives for Koan: orchestration helpers, coordination, and background job utilities.

Total Downloads
762
762
Published
Jun 12, 2026
4mo ago

Get Started

dotnet add package Sylin.Koan.Scheduling --version 0.17.0
ProductVersions
.NET
net10.0

README

Sylin.Koan.Scheduling

Lightweight in-process scheduling primitives for Koan apps.

  • Target framework: net10.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

Downloads by Version

Similar & Alternative Packages

Hand-picked matching NuGet libraries based on tags & ecosystem

Depended On By

Find packages that declare this package as a dependency. NuGet does not provide a reverse-dependency endpoint, so candidates are checked on demand.

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

Compatibility metadata lists 1 target framework; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.