Hangfire 1.8.0-rc2

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/

No packages depend on Hangfire.

https://www.hangfire.io/blog/ 1.8.0-rc2 Hangfire.Core • Added – Support for default culture and UI culture via the `UseDefaultCulture` configuration method. • Added – `CompatibilityLevel.Version_180` flag to avoid storing culture parameters when they are the same as default. • Added – `BackgroundJobServerOptions.IsLightweightServer` option to run server with no storage processes. • Changed – Use UI culture from `CurrentCulture` parameter when `CurrentUICulture` one is missing. Hangfire.SqlServer • Breaking – Prioritise Microsoft.Data.SqlClient package over System.Data.SqlClient one. • Changed – Bump internal version of Dapper to 2.0.123. • Changed – Remove System.Data.SqlClient package from the NuGet dependency graph (by @0xced). Hangfire.NetCore • Added – `net451` and `netstandard1.3` targets for the package. • Changed – Use `netstandard2.1` target instead of `netcoreapp3.0` for the package. Hangfire.AspNetCore • Breaking – Make the package to be dependent on Hangfire.NetCore to use the same types. 1.8.0-rc1 Hangfire.Core • Added – Introduce the `Job.Queue` property, so jobs now can have their own queue specified. • Added – Method overloads to create background jobs directly with a custom default queue. • Added – Method overloads to create recurring jobs directly with a custom default queue. • Added – `IBackgroundJobClient.Create` method overloads with the new `queue` parameter. • Added – `JobContinuationOptions.OnlyOnDeletedState` to create continuations after a failure. • Added – Make it possible to specify multiple `JobContinuationOptions` values for a continuation. • Added – Ability to use custom formattable resource identifiers for the `DisableConcurrentExecution` filter. • Added – Pass `ServerId` to `FailedState` instances to simplify the debugging on different servers. • Added – Allow to pass job parameters when creating a job (by @brian-knoll-micronetonline). • Added – `MisfireHandlingMode.Strict` to create job for each missed recurring job occurrence. • Added – `DeletedState` now have the persisted `Exception` property populated after a failure. • Added – `Exception` job parameter is passed to continuation when `UseResultsInContinuations` method is used. • Added – `FromExceptionAttribute` to deal with an antecedent exception in a background job continuation. • Added – Allow to filter exception types in `AutomaticRetryAttribute` by using the new `OnlyOn` property. • Added – Built-in `Remove` method for `JobFilterCollection` to remove global filters based on their type. • Added – `IGlobalConfiguration.UseFilterProvider` extension method to unify the configuration. • Changed – Use the `AttemptsExceededAction.Delete` option by default in the global automatic retry filter. • Changed – Query time from storage in recurring and delayed schedulers when supported by storage. • Changed – Increase the default value for the `BackgroundJobServerOptions.StopTimeout` to 500 ms. • Changed – Speedup delayed jobs when custom default queue is specified by avoiding extra state transition. • Changed – Move job to the `DeletedState` instead of `SucceededState` when its invocation was canceled by a filter. • Deprecated – `AddOrUpdate` overloads with optional params defined in the `RecurringJobManagerExtensions` class. • Deprecated – `AddOrUpdate` overloads with optional parameters defined in the `RecurringJob` class. • Deprecated – `AddOrUpdate` method overloads with no `recurringJobId` parameter. • Deprecated – `RecurringJobOptions.QueueName` property, new methods should be used instead. • Breaking – Dropped `NET45` platform target in favor of `NET451` target to support Visual Studio 2022. Dashboard UI • Added – Dark mode support for Dashboard UI configurable with the `UseDarkModeSupportForDashboard` method (by @danillewin). • Added – Dashboard UI now have full-width layout to display more data (by @danillewin). • Added – Allow to add custom JavaScript and CSS files to the Dashboard UI via the `DashboardRoutes` class. • Added – `IGlobalConfiguration.UseJobDetailsRenderer` method for custom renderers for Job Details page. • Added – Display deleted jobs in the Realtime and History graphs when supported by storage. • Added – `IGlobalConfiguration.UseDashboardMetrics` extension method to pass multiple metrics at once. • Added – State renderer for the `DeletedState` to display its new exception property. • Changed – Make it possible to display methods of non-loaded jobs in Dashboard UI when supported by storage. • Changed – Improved display of real-time chart with more accents on failed and deleted jobs. • Changed – Don't display queue name in state transition list when it's the `default` one. • Changed – Display scheduled job count when enqueued count is zero on the main metric. Extensibility • Added – `Factory`, `StateMachine` and `Performer` properties to context classes to avoid injecting services. • Added – Allow to pass custom data to `ApplyStateContext` and `ElectStateContext` instances. • Added – Preserve custom data dictionary between the entire filter chain. • Added – Allow to pass transaction to background job state changer when new methods implemented. • Changed – Ignore some members when serializing a `JobFilterAttribute` instance to decrease payload size. Storage • Added – Virtual `JobStorage.GetReadOnlyConnection` method intended to return `JobStorageConnection` for replicas. • Added – Virtual `JobStorage.HasFeature` method for querying optional features. • Added – Optional `GetSetCount` and `GetUtcDateTime` methods for the `JobStorageConnection` class. • Added – Optional `AcquireDistributedLock` and `RemoveFromQueue` methods for the `JobStorageTransaction` class. • Added – Support for transactional acknowledge using new storage method for better handling some data loss scenarios. • Added – `CreateJob` method to the `JobStorageTransaction` abstract class. • Added – `SetJobParameter` method to the `JobStorageTransaction` abstract class. • Added – Experimental `JobStorageConnection.SetContains` method. • Added – Optional `ParametersSnapshot` property for `BackgroundJob` and `JobData` classes to minimize roundtrips in future. • Added – Fetch "Retries" metric with other statistics when supported by storage. • Added – `JobStorageMonitor` class with more available methods for the new features. • Changed – Allow to query job parameters without additional roundtrip when supported by a storage. • Changed – Expose state data dictionaries in list DTOs when supported by storage. Internals • Added – `IBackgroundProcess.UseBackgroundPool` now allows to pass thread configuration logic. • Added – `BackgroundJobServerOptions.WorkerThreadConfigurationAction` option for custom thread configuration. • Changed – Allow changing queues on the fly with custom worker configuration. • Changed – Avoid storage roundtrip to query job data in worker, take data from previous state change. • Changed – `FromParameterAttribute`-based logic now always overwrites arguments, even with non-null values. • Changed – Turn `JobContinuationOptions` enum into flags while still possible. • Changed – Re-implement `TaskExtensions.WaitOneAsync` only with the `RegisterWaitForSingleObject` method. • Changed – `ServerHeartbeatProcess` now uses `ThreadPriority.AboveNormal` to prioritize heartbeats. Hangfire.SqlServer • Breaking – Dropped `NET45` platform target in favor of `NET451` target to support Visual Studio 2022. • Added – Recommended Schema 8 migration with fixed `JobQueue.Id` column to use the `bigint` type. • Added – Automatic client package detection based on available types, preferring `System.Data.SqlClient` (by @0xced). • Added – `SqlServerStorageOptions.DbProviderFactory` option to use custom provider factory. • Added – `TryAutoDetectSchemaDependentOptions` option to automatically enable options based on schema. • Added – `SqlServerStorage.SchemaVersion` metric for Dashboard UI. • Added – Optional experimental transactional acknowledge for SQL Server (`UseTransactionalAcknowledge` option). • Added – Implement the `Connection.GetUtcDateTime` feature to make work new changes in schedulers. • Changed – Remove dependency on System.Data.SqlClient for Hangfire.SqlServer (by @0xced). • Changed – Set default value for the `QueuePollInterval` option to `TimeSpan.Zero`. • Changed – Polling delay when `QueuePollInterval` is set to zero now defaults to 200 ms. • Changed – Sliding invisibility timeout-based fetching method is now used by default with 5 minute timeout. • Changed – Use command batching by default with 5-minute maximum timeout. • Changed – Enable `UseRecommendedIsolationLevel` option by default. • Changed – `GetJobData` now populates `JobData.ParametersSnapshot` property to avoid additional round-trips. • Changed – Display scheduled and processing jobs in the ascending order in Dashboard UI. • Deprecated – `UsePageLocksOnDequeue` option is now obsolete and doesn't affect anything. Hangfire.SqlServer.Msmq • Breaking – Dropped `NET45` platform target in favor of `NET451` target to support Visual Studio 2022. Hangfire.NetCore and Hangfire.AspNetCore • Added – `IApplicationBuilder.UseHangfireServer` that accepts custom factory for `IBackgroundProcessingServer`.

.NET Framework 4.5.1

.NET Standard 1.3

.NET Standard 2.0

Version Downloads Last updated
1.8.21 12 08/13/2025
1.8.20 25 05/19/2025
1.8.19 33 05/17/2025
1.8.18 33 02/20/2025
1.8.17 34 12/10/2024
1.8.16 34 11/30/2024
1.8.15 40 10/26/2024
1.8.14 51 06/14/2024
1.8.12 44 04/09/2024
1.8.11 45 03/12/2024
1.8.10 46 02/17/2024
1.8.9 42 01/26/2024
1.8.7 48 01/05/2024
1.8.6 46 10/23/2023
1.8.5 54 08/22/2023
1.8.4 48 08/15/2023
1.8.3 45 09/05/2023
1.8.2 49 08/19/2023
1.8.1 49 08/12/2023
1.8.0 47 08/17/2023
1.8.0-rc4 46 08/16/2023
1.8.0-rc3 45 08/10/2023
1.8.0-rc2 43 08/09/2023
1.8.0-rc1 47 08/10/2023
1.8.0-beta4 46 08/06/2023
1.8.0-beta3 55 08/15/2023
1.8.0-beta2 46 08/17/2023
1.8.0-beta1 46 08/14/2023
1.7.37 45 04/09/2024
1.7.36 52 08/07/2023
1.7.35 47 08/16/2023
1.7.34 52 08/10/2023
1.7.33 48 08/16/2023
1.7.32 51 08/04/2023
1.7.31 50 07/18/2023
1.7.30 49 08/09/2023
1.7.29 49 08/11/2023
1.7.28 49 08/04/2023
1.7.27 57 08/07/2023
1.7.26 48 08/05/2023
1.7.25 54 08/06/2023
1.7.24 46 08/12/2023
1.7.23 54 08/05/2023
1.7.22 47 09/23/2023
1.7.21 46 08/07/2023
1.7.20 54 08/09/2023
1.7.19 49 08/16/2023
1.7.18 44 08/06/2023
1.7.17 48 08/11/2023
1.7.16 50 08/15/2023
1.7.15 53 08/11/2023
1.7.14 45 08/17/2023
1.7.13 46 08/04/2023
1.7.12 47 08/06/2023
1.7.11 51 08/06/2023
1.7.10 41 08/15/2023
1.7.9 54 08/15/2023
1.7.8 54 08/17/2023
1.7.7 46 08/12/2023
1.7.6 51 08/17/2023
1.7.5 48 08/18/2023
1.7.4 48 08/09/2023
1.7.3 45 08/08/2023
1.7.2 47 08/08/2023
1.7.1 47 08/07/2023
1.7.0 49 08/17/2023
1.6.30 49 08/04/2023
1.6.29 44 08/14/2023
1.6.28 49 08/08/2023
1.6.27 49 08/05/2023
1.6.26 49 08/11/2023
1.6.25 48 08/12/2023
1.6.24 52 08/10/2023
1.6.23 51 08/16/2023
1.6.22 42 08/21/2023
1.6.21 51 08/09/2023
1.6.20 45 09/24/2023
1.6.19 49 09/13/2023
1.6.18 51 08/10/2023
1.6.17 54 08/04/2023
1.6.16 51 08/09/2023
1.6.15 51 08/11/2023
1.6.14 48 08/05/2023
1.6.13 45 08/16/2023
1.6.12 50 08/18/2023
1.6.11 47 08/05/2023
1.6.10 46 08/09/2023
1.6.9 48 09/23/2023
1.6.8 58 08/04/2023
1.6.7 48 08/05/2023
1.6.6 61 08/11/2023
1.6.5 45 08/10/2023
1.6.4 51 08/04/2023
1.6.3 50 08/10/2023
1.6.2 45 08/15/2023
1.6.1 70 08/09/2023
1.6.0 53 08/09/2023
1.5.9 45 08/09/2023
1.5.8 50 08/11/2023
1.5.7 47 08/10/2023
1.5.6 53 08/06/2023
1.5.5 51 08/11/2023
1.5.4 53 08/04/2023
1.5.3 53 08/09/2023
1.5.2 52 08/15/2023
1.5.1 48 08/16/2023
1.5.0 43 08/10/2023
1.4.7 52 09/29/2023
1.4.6 64 08/04/2023
1.4.5 48 09/23/2023
1.4.4 51 09/19/2023
1.4.3 45 08/08/2023
1.4.2 52 08/07/2023
1.4.1 50 08/05/2023
1.3.4 45 08/09/2023
1.3.3 50 09/09/2023
1.3.2 45 08/15/2023
1.3.1 52 08/08/2023
1.3.0 46 08/11/2023
1.2.2 48 08/12/2023
1.2.1 52 08/05/2023
1.2.0 54 08/10/2023
1.1.1 49 08/19/2023
1.1.0 61 08/11/2023
1.0.2 45 08/23/2023
1.0.1 47 08/24/2023
1.0.0 47 08/23/2023
0.9.1 45 08/06/2023
0.9.0 52 08/06/2023
0.8.3 48 08/23/2023
0.8.2 50 08/16/2023
0.8.1 50 08/07/2023
0.8.0 46 08/15/2023
0.7.5 49 08/16/2023
0.7.4 55 08/09/2023
0.7.3 51 08/05/2023
0.7.2 52 08/11/2023
0.7.1 50 08/11/2023
0.7.0 50 08/19/2023
0.6.2 47 08/10/2023
0.6.1 50 08/05/2023
0.6.0 53 08/09/2023
0.5.2 55 08/05/2023
0.5.1 60 08/09/2023
0.5.0 52 09/06/2023