Healthie.NET.Hangfire
4.1.4
Prefix Reserved
dotnet add package Healthie.NET.Hangfire --version 4.1.4
NuGet\Install-Package Healthie.NET.Hangfire -Version 4.1.4
<PackageReference Include="Healthie.NET.Hangfire" Version="4.1.4" />
<PackageVersion Include="Healthie.NET.Hangfire" Version="4.1.4" />
<PackageReference Include="Healthie.NET.Hangfire" />
paket add Healthie.NET.Hangfire --version 4.1.4
#r "nuget: Healthie.NET.Hangfire, 4.1.4"
#:package Healthie.NET.Hangfire@4.1.4
#addin nuget:?package=Healthie.NET.Hangfire&version=4.1.4
#tool nuget:?package=Healthie.NET.Hangfire&version=4.1.4

Healthie.NET.Hangfire
▶ Live demo — board.healthie-dotnet.dev — a read-only Healthie.NET dashboard watching real status pages (Anthropic, OpenAI, GitHub, Cloudflare, and more), built from these packages. Full documentation at healthie-dotnet.dev.
Hangfire IPulseScheduler implementation for Healthie.NET. Schedules each pulse checker as a Hangfire recurring job.
Installation
dotnet add package Healthie.NET.Hangfire
Usage
Configure Hangfire as you normally would, then add one line:
using Healthie.Scheduling.Hangfire;
builder.Services.AddHangfire(c => c.UseSqlServerStorage(connectionString));
builder.Services.AddHangfireServer();
builder.Services
.AddHealthie(typeof(Program).Assembly)
.AddHealthieHangfire();
Hangfire's storage, retry policy and dashboard stay yours to configure — a library that picked them would be picking where your job data lives.
What it buys you
The schedule lives in storage rather than in the process, so it survives a restart. And across several replicas each occurrence is handed to exactly one server, so a scaled-out deployment runs each check once rather than once per replica — which the built-in timer does not do.
Recurring jobs appear in the Hangfire dashboard under the healthie: prefix, alongside their run history.
Granularity
Hangfire notices due work by polling, every 15 seconds by default, so a check asking to run more often than that will not. Lower BackgroundJobServerOptions.SchedulePollingInterval, or keep the fast checks on the built-in timer.
Hangfire schedules only by cron, so a fixed period has to become a cron expression. Periods that divide evenly into a minute, an hour or a day convert; seven seconds does not, and is refused rather than approximated — a cron expression firing at :00, :07 … :56 would wait four seconds before starting the next minute. Give such a checker a cron expression of its own instead.
Cron expressions pass through untouched: Hangfire parses cron with Cronos, the same standard Unix syntax Healthie.NET uses.
| 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
- Cronos (>= 0.13.0)
- Hangfire.Core (>= 1.8.25)
- Healthie.NET.Abstractions (>= 4.1.4)
- Newtonsoft.Json (>= 13.0.4)
-
net8.0
- Cronos (>= 0.13.0)
- Hangfire.Core (>= 1.8.25)
- Healthie.NET.Abstractions (>= 4.1.4)
- Newtonsoft.Json (>= 13.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
### Fixed
- Timer-scheduled checks now continue after an individual scheduling caller cancels, while host
shutdown still stops them; an older overlapping result can no longer overwrite newer checker state.
- Bulk dashboard state reads and AI diagnoses now avoid redundant state-provider calls.
- Workflow dispatch inputs are passed to shell steps as environment variables, preventing command
injection through a supplied version or branch name.
- Dashboard status text has stronger contrast, and checker details expose their meaning to assistive
technology.
Full changelog: https://github.com/ivanvyd/Healthie.NET/blob/v4.1.4/CHANGELOG.md