Healthie.NET.Quartz
3.1.1
Prefix Reserved
See the version list below for details.
dotnet add package Healthie.NET.Quartz --version 3.1.1
NuGet\Install-Package Healthie.NET.Quartz -Version 3.1.1
<PackageReference Include="Healthie.NET.Quartz" Version="3.1.1" />
<PackageVersion Include="Healthie.NET.Quartz" Version="3.1.1" />
<PackageReference Include="Healthie.NET.Quartz" />
paket add Healthie.NET.Quartz --version 3.1.1
#r "nuget: Healthie.NET.Quartz, 3.1.1"
#:package Healthie.NET.Quartz@3.1.1
#addin nuget:?package=Healthie.NET.Quartz&version=3.1.1
#tool nuget:?package=Healthie.NET.Quartz&version=3.1.1

Healthie.NET.Quartz
Quartz.NET IPulseScheduler implementation for Healthie.NET. Provides persistent, CRON-based scheduling with support for clustering and advanced job store configurations.
Installation
dotnet add package Healthie.NET.Quartz
Usage
Basic setup with default Quartz configuration:
using Healthie.Scheduling.Quartz;
builder.Services
.AddHealthie(typeof(Program).Assembly)
.AddHealthieQuartz();
With custom Quartz configuration:
builder.Services
.AddHealthie(typeof(Program).Assembly)
.AddHealthieQuartz(quartz =>
{
quartz.UsePersistentStore(store =>
{
store.UseSqlServer("your-connection-string");
});
});
Key Types
| Type | Description |
|---|---|
StartupExtensions.AddHealthieQuartz() |
Registers Quartz.NET services and QuartzPulseScheduler as IPulseScheduler. |
QuartzPulseScheduler |
Implements IPulseScheduler using Quartz jobs with CRON triggers. |
PulseCheckerJob |
Internal Quartz IJob that resolves and triggers a pulse checker by name. |
How It Works
- Each pulse checker is scheduled as a Quartz job identified by its fully-qualified type name.
PulseIntervalvalues are converted to CRON expressions viaPulseIntervalExtensions.ToCronExpression().- The
PulseCheckerJobresolves the checker from DI by name, avoiding serialization of complex objects. - Rescheduling a checker removes the existing job before creating a new one.
When to Use
Use this instead of the built-in TimerPulseScheduler when you need:
- Persistent job storage across restarts
- CRON-based scheduling
- Quartz clustering for distributed environments
See Also
| 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 was computed. 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. |
-
net10.0
- Healthie.NET.Abstractions (>= 3.1.1)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Quartz.Extensions.DependencyInjection (>= 3.18.2)
- Quartz.Extensions.Hosting (>= 3.18.2)
-
net8.0
- Healthie.NET.Abstractions (>= 3.1.1)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Quartz.Extensions.DependencyInjection (>= 3.18.2)
- Quartz.Extensions.Hosting (>= 3.18.2)
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 |
|---|---|---|
| 4.1.1 | 154 | 8/14/2026 |
| 4.1.0 | 96 | 7/30/2026 |
| 4.0.0 | 101 | 7/30/2026 |
| 3.1.4 | 105 | 7/19/2026 |
| 3.1.3 | 95 | 7/18/2026 |
| 3.1.2 | 97 | 7/18/2026 |
| 3.1.1 | 93 | 7/18/2026 |
| 3.1.0 | 103 | 7/17/2026 |
| 3.0.0 | 104 | 7/15/2026 |
| 2.3.0 | 136 | 2/24/2026 |
| 2.1.1-beta | 122 | 2/24/2026 |
| 2.0.0-beta | 119 | 2/22/2026 |
| 1.1.0-beta | 181 | 5/31/2025 |
| 1.0.0-beta | 252 | 5/18/2025 |
### Fixed
- The dashboard no longer flickers on load when it is prerendered. Hosted the usual
way -- `<HealthieDashboard />` on an interactive-server page, which prerenders by
default -- the server rendered the full board, then the circuit connected a moment
later and the component started again from an empty state, read every checker afresh,
and briefly replaced the board already on screen. In that gap a status icon, which the
dashboard stylesheet sizes against its surroundings, painted for a frame before those
rules applied and filled the board as one large ring. The states the prerender reads
are now carried across to the interactive render through `PersistentComponentState`,
so the first interactive render matches the prerendered one: nothing is replaced, no
frame shows an unsized icon, and the redundant second read of every checker is gone.
Full changelog: https://github.com/ivanvyd/Healthie.NET/blob/v3.1.1/CHANGELOG.md