Hangfire.Core 1.7.5

An easy and reliable way to perform fire-and-forget, delayed and recurring, long-running, short-running, CPU or I/O intensive tasks inside ASP.NET applications. No Windows Service / Task Scheduler required. Even ASP.NET is not required. Backed by Redis, SQL Server, SQL Azure or MSMQ. This is a .NET alternative to Sidekiq, Resque and Celery. https://www.hangfire.io/

Showing the top 20 packages that depend on Hangfire.Core.

Packages Downloads
AspNetCore.HealthChecks.Hangfire
HealthChecks.Hangfire is the health check package for Hangfire.
28
Hangfire.NetCore
.NET Core's Worker Service host support for Hangfire, a background job framework for .NET applications.
22
Hangfire.PostgreSql
PostgreSql storage implementation for Hangfire (background job system for ASP.NET and aspnet core applications).
18
IdentityStream.Hangfire.Console
Job console for Hangfire
14
Hangfire.Redis.StackExchange
Hangfire Redis Storage Based on Redis.StackExchange See http://hangfire.io/ for some more info on the main project and https://github.com/marcoCasamento/Hangfire.Redis.StackExchange for info on this
11
Hangfire.PostgreSql
PostgreSql storage implementation for Hangfire (background job system for ASP.NET and aspnet core applications).
6
Hangfire.AspNetCore
ASP.NET Core support for Hangfire (background job system for ASP.NET applications).
6
Hangfire.NetCore
.NET Core's Worker Service host support for Hangfire (background job system for ASP.NET applications).
6
Hangfire.PostgreSql
PostgreSql storage implementation for Hangfire (background job system for ASP.NET applications).
5

https://www.hangfire.io/blog/

Please see https://docs.hangfire.io/en/latest/upgrade-guides/upgrading-to-hangfire-1.7.html to learn how to upgrade from 1.6.X.

1.7.5 • Fixed – Show error message when there's an error loading the statistics in Dashboard UI (by @prochnowc). • Fixed – Properly handle recurring jobs with null or empty 'Job' field. • Fixed – Disable recurring job when we can't schedule it due to an error. • Fixed – Use LazyThreadSafetyMode.PublicationOnly to avoid caching "JobStorage.Current is null" exceptions.

1.7.4 • Added – BackgroundJobClient.RetryAttempts property to make job creation resilient to transient exceptions. • Added – Dashboard localization support in pt-BR (by @candidodmv). • Changed – Protect background dispatchers from moving from stopped state to non-stopped one. • Changed – Unify WaitOne and WaitOneAsync methods with timeout and cancellation token for WaitHandle class. • Fixed – Don't hide an original fatal exception occurred in dispatchers in some cases. • Fixed – Dashboard UI to display "await" keyword on all task-like methods. • Fixed – Display links properly in an informational message on the Servers page in Dashboard UI. • Fixed – Wait for the heartbeat process before shutting down a server.

1.7.3

• SECURITY – Use HtmlEncode in all remaining places in Dashboard UI to prevent XSS attacks.

• Added – Added Dutch language, and updated missing translation on "Servers" page (by @r-win). • Added – Cron.Never method for adding manual recurring jobs that never fire (by @michaltalaga). • Fixed – Add missing AddOrUpdate extension methods for the IRecurringJobManager interface. • Deprecated – Unused HtmlHelper.FormatProperties method is now obsolete.

1.7.2 • Added – DashboardOptions.TimeZoneResolver property to handle custom time zone resolvers in Dashboard UI. • Fixed – RecurringJob.AddOrUpdate method is now able to update a broken recurring job. • Fixed – Recurring job scheduler now properly handles recurring jobs whose job method or time zone is wrong. • Fixed – Don't throw an exception on Recurring Jobs page when time zone can't be resolved.

1.7.1 • Added – DashboardOptions.IgnoreAntiforgeryToken property to disable token validation in Dashboard UI. • Added – Display hints regarding server status on Servers page in Dashboard UI. • Added – Highlight recurring jobs with no next execution in Dashboard UI. • Added – Show actual error in Dashboard UI when recurring job has an invalid Cron expression. • Fixed – InvalidOperationException when AllowSynchronousIO option isn't set in ASP.NET Core 3.0. • Fixed – Set NextExecution value to null when existing recurring job has an invalid Cron expression. • Fixed – Make dashboard charts to be more culture-specific to use correct time format. • Fixed – Obsolete UseSerializationSettings comment now contains correct method name (by @PaitoAnderson). • Project – resx files now re-generated automatically when building a project.

1.7.0 • Added – Full .NET Core 2.0 support by explicitly targeting .NET Standard 2.0. • Added – IGlobalConfiguration.SetDataCompatibilityLevel to enable rolling upgrades from version 1.6. • Added – IGlobalConfiguration.UseRecommendedSerializerSettings method for new installations. • Added – Assemblies now loaded automatically when resolving a type when using default type resolver. • Added – Custom TaskScheduler can now be specified in BackgroundJobServerOptions for workers. • Added – IdempotentCompletionAttribute filter to enforce strict order for continuations. • Added – IBackgroundJobClient.ContinueJobWith methods to replace ContinueWith ones in future for clarity. • Added – JobStorage.LinearizableReads virtual property to avoid unnecessary waits in state changer. • Added – Allow async methods to run their continuations on worker thread by disabling TaskScheduler. • Added – Multi-stage shutdown to wait for graceful completion before starting to abort jobs. • Added – Asynchronous checks for job cancellation, IJobCancellationToken can be replaced with CancellationToken (by @pieceofsummer). • Added – Possibility to create millions of recurring jobs without stressing the scheduler. • Added – Second-based recurring jobs are fully supported now with 6-part cron expressions. • Added – Support for custom TimeZoneInfo resolvers in recurring jobs for interoperability purposes. • Added – Package now explicitly targets .NET Standard 2.0, and .NET Framework 4.6 target added as well. • Added – Type roundtrip support between .NET Core and .NET Framework for most common types. • Added – Allow to specify queue names based on job arguments with QueueAttribute via patterns. • Added – PerformContext.Storage property to allow server filters to spawn connections. • Added – GetFirstByLowestScoreFromSet connection method overload that returns multiple items (by @cdschneider). • Added – Entry point for custom job naming strategies available for dashboard (by @pieceofsummer). • Added – JobDisplayNameAttribute class for displaying jobs in dashboard, available on .NET Core (by @pieceofsummer). • Added – Support for async jobs returning ValueTask (by @pieceofsummer). • Added – Support for asynchronous background processes, opens the road toward async storage. • Added – Circuit breaker pattern for background processes to reduce the logging pressure. • Added – Processing server is now able to detect it was expired, and restart itself with the new id. • Added – Ability to use custom delays for automatic retries of a background job. • Added – ThreadAbortException and ThreadInterruptedException handling to keep the background process running. • Added – Support for complex Cron expressions, including the L, W, # characters. • Added – JobActivator.BeginScope method overload with the full PerformContext (by @jeroenvervaeke). • Added – Support for read-only view for dashboard (by @mikechamberlain). • Added – Storage property to control the job expiration time (by @rsilvanet). • Added – Decrease the size of serialized type payloads and remove version information. • Changed – Make TaskScheduler.Default the default scheduler for async jobs to avoid breaking changes. • Changed – Split serializer setting to Internal and User scopes to isolate them (Version_170 Switch). • Changed – Don't allow to affect internal serialization even by JsonConvert.DefaultSettings (Version_170 Switch). • Changed – Share the same type binder between Hangfire itself and Newtonsoft.Json (Version_170 Switch). • Changed – Use more compact representation of dates when using SerializeDateTime (Version_170 Switch). • Changed – Stop using special case for DateTime argument serialization (Version_170 Switch). • Changed – Don't serialize unused AwaitingState.Expiration field (Version_170 Switch). • Changed – Specify parameter type when serializing arguments to allow using TypeNameHandling.Auto option. • Changed – Use case sensitive search when resolving a type as by default in .NET. • Changed – Make SucceededState constructor public to allow state serialization. • Changed – Add IBackgroundJobFactory.StateMachine property (breaking change for low level API). • Changed – Replace Rickshaw with Chart.js to have beautiful charts with less headache. • Changed – DelayedJobScheduler is able to use the new storage method to query multiple jobs at once. • Changed – RecurringJobScheduler now uses index-based checks to fetch only those jobs that should be scheduled. • Fixed – Worker now logs an error, when all the state change attempts failed due to an exception. • Fixed – Don't serialize arguments multiple times when showing job details in dashboard. • Fixed – DateTimeOffset conversion error when it was serialized with TypeConverter. • Fixed – Remove duplicate of argument deserialization code for obsolete Job class methods. • Fixed – Decorate all the exceptions with the SerializableAttribute. • Fixed – ArgumentNullException when job class contains method with non-resolvable generic arguments. • Fixed – "Failed to initialize CoreCLR" error, by removing reference to Microsoft.NETCore.Portable.Compatibility. • Fixed – Possible race conditions in RecurringJobScheduler that may lead to job duplicates. • Fixed – Configuration inconsistency introduced in 1.6.18 leading to issues with custom JobActivator. • Fixed – Triggering the recurring task doesn't update its last execution time. • Fixed – Recurring job which don't have next execution (intentionally or not) don't cause exception. • Fixed – Dashboard recurring jobs sorting is random (now it's based on next execution time). • Fixed – Performance problems with huge amount of recurring jobs. • Fixed – NextExecution field of a recurring job has delay in value getting set. • Fixed – Dashboard graphs have improper sizing. • Fixed – Server disappears from the list, but still performing the background processing. • Fixed – Logging is too aggressive on transient errors. • Fixed – Daylight saving time transitions now handled perfectly in recurring jobs thanks to Cronos. • Fixed – Confusing Cron scheduling, when both day-of-week and day-of-month fields set. • Project – Add DataCompatibilityRangeFact and DataCompatibilityRangeTheory classes for compatibility checks. • Project – Reduce test execution time by removing unnecessary waits.

.NET Framework 4.5

.NET Framework 4.6

.NET Standard 1.3

.NET Standard 2.0

Version Downloads Last updated
1.8.21 2 09/18/2025
1.8.20 4 06/03/2025
1.8.19 4 06/03/2025
1.8.18 5 02/26/2025
1.8.17 5 02/26/2025
1.8.16 5 02/26/2025
1.8.15 5 02/26/2025
1.8.14 20 09/27/2024
1.8.12 5 02/26/2025
1.8.11 4 02/26/2025
1.8.10 5 02/26/2025
1.8.9 4 02/26/2025
1.8.7 6 02/26/2025
1.8.6 15 09/20/2024
1.8.5 17 09/20/2024
1.8.4 4 02/26/2025
1.8.3 4 02/26/2025
1.8.2 5 02/26/2025
1.8.1 4 02/26/2025
1.8.0 10 09/25/2024
1.7.37 5 02/26/2025
1.7.36 5 02/26/2025
1.7.35 5 02/26/2025
1.7.34 5 02/26/2025
1.7.33 5 02/26/2025
1.7.32 5 02/26/2025
1.7.31 5 02/26/2025
1.7.30 5 02/26/2025
1.7.29 5 02/26/2025
1.7.28 5 02/26/2025
1.7.27 5 02/26/2025
1.7.26 5 02/26/2025
1.7.25 5 02/26/2025
1.7.24 5 02/26/2025
1.7.23 6 02/26/2025
1.7.22 5 02/26/2025
1.7.21 5 02/26/2025
1.7.20 5 02/26/2025
1.7.19 5 02/26/2025
1.7.18 5 02/26/2025
1.7.17 5 02/26/2025
1.7.16 5 02/26/2025
1.7.15 5 02/26/2025
1.7.14 5 02/26/2025
1.7.13 5 02/26/2025
1.7.12 5 02/26/2025
1.7.11 4 02/26/2025
1.7.10 5 02/26/2025
1.7.9 4 02/26/2025
1.7.8 4 02/26/2025
1.7.7 4 02/26/2025
1.7.6 4 02/26/2025
1.7.5 4 02/26/2025
1.7.4 4 02/26/2025
1.7.3 4 02/26/2025
1.7.2 4 02/26/2025
1.7.1 4 02/26/2025
1.7.0 4 02/26/2025
1.6.30 5 02/26/2025
1.6.29 5 02/26/2025
1.6.28 5 02/26/2025
1.6.27 5 02/26/2025
1.6.26 5 02/26/2025
1.6.25 5 02/26/2025
1.6.24 5 02/26/2025
1.6.23 5 02/26/2025
1.6.22 5 02/26/2025
1.6.21 5 02/26/2025
1.6.20 5 02/26/2025
1.6.19 5 02/26/2025
1.6.18 5 02/26/2025
1.6.17 5 02/26/2025
1.6.16 5 02/26/2025
1.6.15 5 02/26/2025
1.6.14 5 02/26/2025
1.6.13 5 02/26/2025
1.6.12 5 02/26/2025
1.6.11 4 02/26/2025
1.6.10 5 02/26/2025
1.6.9 4 02/26/2025
1.6.8 4 02/26/2025
1.6.7 4 02/26/2025
1.6.6 4 02/26/2025
1.6.5 4 02/26/2025
1.6.4 4 02/26/2025
1.6.3 4 02/26/2025
1.6.2 4 02/26/2025
1.6.1 4 02/26/2025
1.6.0 3 02/26/2025
1.5.9 4 02/26/2025
1.5.8 4 02/26/2025
1.5.7 4 02/26/2025
1.5.6 4 02/26/2025
1.5.5 4 02/26/2025
1.5.4 4 02/26/2025
1.5.3 4 02/26/2025
1.5.2 4 02/26/2025
1.5.1 4 02/26/2025
1.5.0 4 02/26/2025
1.4.7 4 02/26/2025
1.4.6 4 02/26/2025
1.4.5 4 02/26/2025
1.4.4 4 02/26/2025
1.4.3 4 02/26/2025
1.4.2 4 02/26/2025
1.4.1 4 02/26/2025
1.3.4 4 02/26/2025
1.3.3 4 02/26/2025
1.3.2 4 02/26/2025
1.3.1 4 02/26/2025
1.3.0 4 02/26/2025
1.2.2 4 02/26/2025
1.2.1 4 02/26/2025
1.2.0 4 02/26/2025
1.1.1 4 02/26/2025
1.1.0 4 02/26/2025
1.0.2 4 02/26/2025
1.0.1 4 02/26/2025
1.0.0 4 02/26/2025
0.9.1 4 02/26/2025
0.9.0 4 02/26/2025
0.8.3 4 02/26/2025
0.8.2 4 02/26/2025
0.8.1 5 02/26/2025
0.8.0 4 02/26/2025
0.7.5 4 02/26/2025
0.7.4 4 02/26/2025
0.7.3 4 02/26/2025
0.7.1 4 02/26/2025
0.7.0 4 02/26/2025
0.6.2 4 02/26/2025
0.6.1 4 02/26/2025
0.5.2 4 02/26/2025
0.5.1 4 02/26/2025
0.5.0 4 02/26/2025