RzR.Scheduling.RecurringJobs
3.0.0.7953
dotnet add package RzR.Scheduling.RecurringJobs --version 3.0.0.7953
NuGet\Install-Package RzR.Scheduling.RecurringJobs -Version 3.0.0.7953
<PackageReference Include="RzR.Scheduling.RecurringJobs" Version="3.0.0.7953" />
<PackageVersion Include="RzR.Scheduling.RecurringJobs" Version="3.0.0.7953" />
<PackageReference Include="RzR.Scheduling.RecurringJobs" />
paket add RzR.Scheduling.RecurringJobs --version 3.0.0.7953
#r "nuget: RzR.Scheduling.RecurringJobs, 3.0.0.7953"
#:package RzR.Scheduling.RecurringJobs@3.0.0.7953
#addin nuget:?package=RzR.Scheduling.RecurringJobs&version=3.0.0.7953
#tool nuget:?package=RzR.Scheduling.RecurringJobs&version=3.0.0.7953
RzR.Scheduling.RecurringJobs is a lightweight recurring job scheduler for .NET.
It is designed for cases where you want to run one or more pieces of work on a repeating schedule without pulling in a heavier scheduling framework. The library is built around System.Threading.Timer, works well with dependency injection, and now exposes a clearer job-based API for starting, observing, and stopping recurring work.
What It Gives You
- Schedule a single recurring job or several work items in one job.
- Run through DI with
IMethodScheduleror without DI throughMethodSchedulerService.Default. - Stop a job by handle, by id, or stop everything managed by the scheduler.
- Configure retries, first-run delay, max iterations, stop-on-failure, and stop-on-first-success behavior.
- Control parallel execution when one job contains multiple work items.
- Register class-based scheduled tasks through
AddScheduledTask<TTask>().
Quick Start
For most applications, the simplest path is:
- Register the scheduler in DI.
- Inject
IMethodScheduler. - Call
Schedule(...)withScheduledJobOptions.
using System;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using RzR.Scheduling.RecurringJobs;
using RzR.Scheduling.RecurringJobs.Abstractions;
using RzR.Scheduling.RecurringJobs.Models;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddMethodScheduler();
public sealed class ReportSyncService
{
private readonly IMethodScheduler _scheduler;
public ReportSyncService(IMethodScheduler scheduler)
{
_scheduler = scheduler;
}
public IScheduledJob Start()
{
return _scheduler.Schedule(
new ScheduledJobOptions
{
Id = "reports.sync",
SuccessInterval = TimeSpan.FromMinutes(5),
FailInterval = TimeSpan.FromSeconds(30),
InitialDelay = TimeSpan.FromSeconds(10)
},
SyncReportsAsync);
}
private static Task SyncReportsAsync(CancellationToken cancellationToken = default)
{
return Task.CompletedTask;
}
}
Once a job is scheduled, you can:
- keep the returned
IScheduledJoband callawait job.StopAsync(), - stop a job later with
await scheduler.TryStopAsync("reports.sync"), - or stop everything with
await scheduler.StopAllAsync().
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- DomainCommonExtensions (>= 5.0.0.7637)
- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.1.38)
- Microsoft.Extensions.DependencyInjection (>= 3.1.32)
- Microsoft.Extensions.Hosting.Abstractions (>= 6.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.1)
-
.NETStandard 2.1
- DomainCommonExtensions (>= 5.0.0.7637)
- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.1.38)
- Microsoft.Extensions.DependencyInjection (>= 3.1.32)
- Microsoft.Extensions.Hosting.Abstractions (>= 6.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.1)
-
net5.0
- DomainCommonExtensions (>= 5.0.0.7637)
- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.1.38)
- Microsoft.Extensions.DependencyInjection (>= 3.1.32)
- Microsoft.Extensions.Hosting.Abstractions (>= 6.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.1)
-
net6.0
- DomainCommonExtensions (>= 5.0.0.7637)
- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.1.38)
- Microsoft.Extensions.DependencyInjection (>= 3.1.32)
- Microsoft.Extensions.Hosting.Abstractions (>= 6.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.1)
-
net7.0
- DomainCommonExtensions (>= 5.0.0.7637)
- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.1.38)
- Microsoft.Extensions.DependencyInjection (>= 3.1.32)
- Microsoft.Extensions.Hosting.Abstractions (>= 6.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.1)
-
net8.0
- DomainCommonExtensions (>= 5.0.0.7637)
- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.1.38)
- Microsoft.Extensions.DependencyInjection (>= 3.1.32)
- Microsoft.Extensions.Hosting.Abstractions (>= 6.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.1)
-
net9.0
- DomainCommonExtensions (>= 5.0.0.7637)
- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.1.38)
- Microsoft.Extensions.DependencyInjection (>= 3.1.32)
- Microsoft.Extensions.Hosting.Abstractions (>= 6.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.1)
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 |
|---|---|---|
| 3.0.0.7953 | 85 | 5/22/2026 |