Skip to content

Hangfire reliability

Know when a recurring job doesn't finish.

CronRadar reads Hangfire's recurring-job registry, synchronizes schedules, and records each start, completion, and failure—without adding monitoring calls to every job.

  • Startup discovery
  • Lifecycle tracking
  • 5-second SDK timeout

Runnable setup

One service registration

Register the integration in the process that runs your Hangfire server. Review the package release note above, then verify discovery and one real execution in your application.

C#Copy, add your key, run
dotnet add package CronRadar.Hangfire

# Set this in the deployed process
CRONRADAR_API_KEY=ck_app_xxxxxxxxxxxxxxxxxxxx

using CronRadar.Hangfire;
using Hangfire;

builder.Services.AddHangfire(configuration =>
    configuration.UseSqlServerStorage(connectionString));
builder.Services.AddHangfireServer();
builder.Services.AddCronRadarHangfire();

Explore before installing

A backup misses its run. You get the message.

See an example missed backup and the email that explains what happened. No account needed.

This illustration uses sample data. To verify your own setup, connect a real job and confirm a test notification from your alert settings.

Founding-customer offer

Map one important Hangfire job in a 30-minute reliability audit.

We will identify how missed, failed, stuck, disappeared, and bad-outcome runs are covered today. If CronRadar fits, we will help verify one safe automation and its notification path. The audit is no-cost and does not require a purchase.

You leave with

  • A clear picture of how your team finds out when one important job breaks.
  • The gaps in missed-run, failure, and stuck-job detection that matter for that job.
  • An agreed next step: try CronRadar, stay with your current setup, or investigate a gap.

Bring the purpose of one recurring job and how you monitor it today. No code, credentials, or purchase needed to start the conversation.

What is actually observed

The failure modes Hangfire's dashboard cannot alert on alone.

Hangfire executes jobs. CronRadar independently watches whether the expected lifecycle arrives.

Failed

The execution filter reports a failed result when Hangfire records an exception.

start → fail

Missed

The synchronized cron schedule establishes when the next run should arrive, including the configured grace period.

expected run → no signal

Stuck

A start without a matching completion is treated as a timed-out execution.

start → no completion

Registry changes

Discovery keeps the job inventory visible. Automatic removal requires an integration that explicitly sends a full registry reconciliation; review package availability before relying on it.

scheduler registry → monitored inventory

Non-blocking

SDK network errors and timeouts are caught. Monitoring does not change the outcome of the job it observes.

HTTP timeout: 5 seconds

Explicit opt-out

Add [SkipMonitor] to jobs you do not want monitored. Non-paused development and staging jobs otherwise count toward the same active-job limit.

[SkipMonitor]

Product evidence

The registry becomes an operational inventory.

CronRadar workspace showing applications with healthy, warning, and critical automation counts
A real CronRadar workspace capture. Each application rolls up healthy, warning, and critical automation counts; open an application to inspect the monitors discovered from code.

Before you install

Reasonable questions, plain answers.

Does this replace the Hangfire dashboard?

No. Keep Hangfire for queues, retries, servers, and job administration. CronRadar adds an independent dead-man signal and notification path for recurring work.

Will monitoring break a production job?

The SDK catches monitoring failures and caps its HTTP request at five seconds. It observes Hangfire execution; it does not swallow or alter your job exception.

What if I add or rename a recurring job?

Restart the scheduler and verify the new job and schedule in CronRadar. Retired jobs are only auto-paused by an explicit full registry reconciliation; older integrations may require you to pause the retired monitor yourself.

How do I migrate existing manual checks?

Run CronRadar alongside them, verify each recurring job appears and completes once, test one safe failure alert, then remove the old per-job check-ins. There is no need for a flag-day cutover.

Need manual control instead? Use the base .NET SDK.

Protect the recurring jobs already in production.

Start with five active automations free. No card, per-seat fee, or auto-discovery overage.