WorkR.Triggers.Timers
0.3.3
dotnet add package WorkR.Triggers.Timers --version 0.3.3
NuGet\Install-Package WorkR.Triggers.Timers -Version 0.3.3
<PackageReference Include="WorkR.Triggers.Timers" Version="0.3.3" />
<PackageVersion Include="WorkR.Triggers.Timers" Version="0.3.3" />
<PackageReference Include="WorkR.Triggers.Timers" />
paket add WorkR.Triggers.Timers --version 0.3.3
#r "nuget: WorkR.Triggers.Timers, 0.3.3"
#:package WorkR.Triggers.Timers@0.3.3
#addin nuget:?package=WorkR.Triggers.Timers&version=0.3.3
#tool nuget:?package=WorkR.Triggers.Timers&version=0.3.3
WorkR.Triggers.Timers
Timer-based triggers for WorkR, supporting fixed-delay and cron-scheduled background workers.
Installation
dotnet add package WorkR.Triggers.Timers
AddDelayWorker
Fires the pipeline repeatedly, waiting a fixed delay between the end of one execution and the start of the next.
Simple registration
builder.Services.AddDelayWorker<MyWorker>(TimeSpan.FromSeconds(30));
With startup execution
Run the pipeline immediately on host start, then continue on the delay interval:
builder.Services.AddDelayWorker<MyWorker>(TimeSpan.FromSeconds(30), runOnStartup: true);
With full pipeline control
builder.Services.AddDelayWorker(
TimeSpan.FromSeconds(30),
pipeline => pipeline
.AddWorker<FetchWorker, IReadOnlyList<Item>>()
.AddWorker<ProcessWorker>());
Default middleware: UseScope. Applied to the first worker in the chain only.
AddScheduledWorker
Fires the pipeline on a cron schedule. Standard five-field cron expressions are supported by default.
Simple registration
// Every 5 minutes
builder.Services.AddScheduledWorker<MyWorker>("*/5 * * * *");
// Every day at 9am
builder.Services.AddScheduledWorker<MyWorker>("0 9 * * *");
With startup execution
Run immediately on host start before the schedule takes over:
builder.Services.AddScheduledWorker<MyWorker>("0 9 * * *", runOnStartup: true);
With second-level precision
Enable six-field cron expressions (seconds field prepended):
// Every 30 seconds
builder.Services.AddScheduledWorker<MyWorker>("*/30 * * * * *", includeSeconds: true);
With overlap cancellation
Cancel a still-running execution when the next scheduled firing arrives:
builder.Services.AddScheduledWorker<MyWorker>("*/5 * * * *", cancelOnOverlap: true);
When cancelOnOverlap is true the previous execution's CancellationToken is cancelled before the new one starts. The old execution is not awaited — it drains in the background while the new one proceeds.
With full pipeline control
builder.Services.AddScheduledWorker(
"0 * * * *",
pipeline => pipeline
.AddWorker<FetchWorker, IReadOnlyList<Item>>()
.AddWorker<ProcessWorker>());
Default middleware: UseScope. Applied to the first worker in the chain only.
ScheduledTriggerfires worker executions on the thread pool so that a long-running execution does not delay the next scheduled firing.
Worker Interface
Both triggers use EmptyTriggerContext — time-based triggers carry no message payload.
public class MyWorker : IWorker<EmptyTriggerContext>
{
private readonly ILogger<MyWorker> _logger;
public MyWorker(ILogger<MyWorker> logger) => _logger = logger;
public Task ExecuteAsync(EmptyTriggerContext context, CancellationToken cancellationToken)
{
_logger.LogInformation("Triggered at {timestamp} (execution {id})",
context.OccurredAt, context.ExecutionId);
return Task.CompletedTask;
}
}
| Product | Versions 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. |
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 |
|---|---|---|
| 0.3.3 | 46 | 5/28/2026 |
| 0.3.2-preview | 39 | 5/28/2026 |
| 0.2.1 | 101 | 5/22/2026 |
| 0.1.7-g2e3259f211 | 85 | 5/19/2026 |
| 0.1.4 | 96 | 5/22/2026 |
| 0.1.2-g00a231d74d | 94 | 5/18/2026 |
| 0.1.1 | 92 | 5/18/2026 |
| 0.0.17-g69ea0bb7c1 | 90 | 5/18/2026 |
| 0.0.6-preview | 39 | 5/28/2026 |
| 0.0.5-preview | 37 | 5/28/2026 |
| 0.0.3-ga2a8ae0176 | 88 | 5/15/2026 |
| 0.0.3-g6695740d51 | 86 | 5/15/2026 |