Hangfire 1.8.0-beta3
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-beta3
Hangfire.Core
• Added – Introduce the `Job.Queue` property, so jobs now can have their own queue specified.
• Added – Method overloads to create recurring jobs directly with a custom default queue.
• Added – Method overloads to create background jobs directly with a custom default queue.
• Added – `IBackgroundJobClient.Create` method overloads with the new `queue` parameter.
• Added – Experimental `JobStorageConnection.SetContains` method.
• Added – Pass `ServerId` to `FailedState` instances to simplify the debugging on different servers.
• Changed – Dashboard UI now have full-width layout to display more data (by @danillewin).
• Changed – Query time from storage in recurring and delayed schedulers when supported by storage.
• Changed – Speedup delayed jobs when custom default queue is specified by avoiding extra state transition.
• Changed – Display scheduled job count when enqueued count is zero on the main metric.
• Changed – Don't display queue name in state transition list when it's the `default` one.
• Changed – Re-implement `TaskExtensions.WaitOneAsync` only with the `RegisterWaitForSingleObject` method.
• Changed – Expose state data dictionaries in list DTOs when supported by storage.
• Changed – Make it possible to display methods of non-loaded jobs in Dashboard UI when supported by storage.
• Fixed – Check job details for the `null` value before passing it to renderers (regression).
• 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.
Hangfire.SqlServer
• Added – Implement the `Connection.GetUtcDateTime` feature to make work new changes in schedulers.
• Changed – Display scheduled and processing jobs in the ascending order in Dashboard UI.
1.8.0-beta2
Hangfire.Core
• Added – `MisfireHandlingMode.Strict` to create job for each missed recurring job occurrence.
• Added – Allow to pass parameters when creating a job (by @brian-knoll-micronetonline).
• Added – Make it possible to use specify multiple `JobContinuationOptions` for a continuation.
• Added – `CreateJob` method to the `JobStorageTransaction` abstract class.
• Added – `SetJobParameter` method to the `JobStorageTransaction` abstract class.
• Changed – Allow to query job parameters without roundtrip when supported by a storage.
• Changed – Turn `JobContinuationOptions` enum into flags while still possible.
• Changed – Avoid storage roundtrip to query job data in worker, take data from previous state change.
• Fixed – Don't overwrite existing argument values with null job parameters when using `FromParameter` attribute.
• Fixed – Job continuation mistakenly started when using the new `OnlyOnDeletedState` option.
Hangfire.SqlServer
• Changed – Set default value for the `QueuePollInterval` option to `TimeSpan.Zero`.
• Changed – Use command batching by default with 5-minute maximum timeout.
• Changed – Enable `UseRecommendedIsolationLevel` option by default.
1.8.0-beta1
Hangfire.Core
• Added – Display deleted jobs in the Realtime and History graphs when supported by storage.
• Added – `DeletedState` now have the persisted `Exception` property.
• Added – `JobContinuationOptions.OnlyOnDeletedState` to create continuations 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 – `IBackgroundProcess.UseBackgroundPool` now allows to pass thread configuration logic.
• Added – `IGlobalConfiguration.UseJobDetailsRenderer` method for custom renderers.
• Added – `BackgroundJobServerOptions.WorkerThreadConfigurationAction` option
• Added – Allow to pass custom data to `ApplyStateContext` and `ElectStateContext` instances.
• Added – Preserve custom data dictionary between the entire filter chain.
• Added – Fetch "Retries" metric with other statistics 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.
• 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 – `Factory`, `StateMachine` and `Performer` properties to context classes to avoid injecting services.
• Added – Allow to pass transaction to background job state changer when new methods implemented.
• Added – Optional `ParametersSnapshot` property for `BackgroundJob` and `JobData` classes to minimize roundtrips in future.
• Changed – Use the `AttemptsExceededAction.Delete` option by default in the global automatic retry filter.
• Changed – Move job to the `DeletedState` instead of `SucceededState` when its invocation was canceled by a filter.
• Changed – `FromParameterAttribute`-based logic now always overwrites arguments, even with non-null values.
• Changed – Improved display of real-time chart with more accents on failed and deleted jobs.
• Changed – Ignore some members when serializing a `JobFilterAttribute` instance to decrease size
• Changed – `ServerHeartbeatProcess` now uses `ThreadPriority.AboveNormal` to prioritize heartbeats.
Hangfire.SqlServer
• Added – Recommended Schema 8 migration with fixed `JobQueue.Id` column to use `bigint` type.
• Added – `SqlServerStorageOptions.PreferMicrosoftDataSqlClient` option to use the corresponding package.
• Added – `SqlServerStorage.SchemaVersion` metric for Dashboard UI.
• Added – Implement optional experimental transactional acknowledge for SQL Server (`UseTransactionalAcknowledge` option).
• Changed – Sliding invisibility timeout-based fetching method is now used by default with 5 minute timeout.
• Fixed – Ensure connection is released when exception is thrown when during lock release.
Hangfire.NetCore and Hangfire.AspNetCore
• Added – `IApplicationBuilder.UseHangfireServer` that accepts custom factory for `IBackgroundProcessingServer`.
.NET Framework 4.5
- Hangfire.Core (= 1.8.0-beta3)
- Hangfire.SqlServer (= 1.8.0-beta3)
- Microsoft.Owin.Host.SystemWeb (>= 3.0.0)
.NET Standard 1.3
- Hangfire.Core (= 1.8.0-beta3)
- Hangfire.SqlServer (= 1.8.0-beta3)
- Hangfire.AspNetCore (= 1.8.0-beta3)
.NET Standard 2.0
- Hangfire.Core (= 1.8.0-beta3)
- Hangfire.SqlServer (= 1.8.0-beta3)
- Hangfire.AspNetCore (= 1.8.0-beta3)
Version | Downloads | Last updated |
---|---|---|
1.8.18 | 15 | 02/20/2025 |
1.8.17 | 20 | 12/10/2024 |
1.8.16 | 16 | 11/30/2024 |
1.8.15 | 23 | 10/26/2024 |
1.8.14 | 29 | 06/14/2024 |
1.8.12 | 30 | 04/09/2024 |
1.8.11 | 27 | 03/12/2024 |
1.8.10 | 31 | 02/17/2024 |
1.8.9 | 29 | 01/26/2024 |
1.8.7 | 29 | 01/05/2024 |
1.8.6 | 33 | 10/23/2023 |
1.8.5 | 32 | 08/22/2023 |
1.8.4 | 33 | 08/15/2023 |
1.8.3 | 30 | 09/05/2023 |
1.8.2 | 34 | 08/19/2023 |
1.8.1 | 35 | 08/12/2023 |
1.8.0 | 32 | 08/17/2023 |
1.8.0-rc4 | 31 | 08/16/2023 |
1.8.0-rc3 | 33 | 08/10/2023 |
1.8.0-rc2 | 29 | 08/09/2023 |
1.8.0-rc1 | 35 | 08/10/2023 |
1.8.0-beta4 | 33 | 08/06/2023 |
1.8.0-beta3 | 39 | 08/15/2023 |
1.8.0-beta2 | 32 | 08/17/2023 |
1.8.0-beta1 | 29 | 08/14/2023 |
1.7.37 | 27 | 04/09/2024 |
1.7.36 | 35 | 08/07/2023 |
1.7.35 | 31 | 08/16/2023 |
1.7.34 | 34 | 08/10/2023 |
1.7.33 | 35 | 08/16/2023 |
1.7.32 | 33 | 08/04/2023 |
1.7.31 | 35 | 07/18/2023 |
1.7.30 | 30 | 08/09/2023 |
1.7.29 | 31 | 08/11/2023 |
1.7.28 | 34 | 08/04/2023 |
1.7.27 | 36 | 08/07/2023 |
1.7.26 | 34 | 08/05/2023 |
1.7.25 | 29 | 08/06/2023 |
1.7.24 | 30 | 08/12/2023 |
1.7.23 | 32 | 08/05/2023 |
1.7.22 | 31 | 09/23/2023 |
1.7.21 | 29 | 08/07/2023 |
1.7.20 | 35 | 08/09/2023 |
1.7.19 | 31 | 08/16/2023 |
1.7.18 | 31 | 08/06/2023 |
1.7.17 | 31 | 08/11/2023 |
1.7.16 | 33 | 08/15/2023 |
1.7.15 | 30 | 08/11/2023 |
1.7.14 | 30 | 08/17/2023 |
1.7.13 | 31 | 08/04/2023 |
1.7.12 | 32 | 08/06/2023 |
1.7.11 | 33 | 08/06/2023 |
1.7.10 | 30 | 08/15/2023 |
1.7.9 | 33 | 08/15/2023 |
1.7.8 | 35 | 08/17/2023 |
1.7.7 | 31 | 08/12/2023 |
1.7.6 | 36 | 08/17/2023 |
1.7.5 | 33 | 08/18/2023 |
1.7.4 | 33 | 08/09/2023 |
1.7.3 | 31 | 08/08/2023 |
1.7.2 | 34 | 08/08/2023 |
1.7.1 | 29 | 08/07/2023 |
1.7.0 | 32 | 08/17/2023 |
1.6.30 | 31 | 08/04/2023 |
1.6.29 | 30 | 08/14/2023 |
1.6.28 | 31 | 08/08/2023 |
1.6.27 | 35 | 08/05/2023 |
1.6.26 | 32 | 08/11/2023 |
1.6.25 | 32 | 08/12/2023 |
1.6.24 | 32 | 08/10/2023 |
1.6.23 | 34 | 08/16/2023 |
1.6.22 | 27 | 08/21/2023 |
1.6.21 | 32 | 08/09/2023 |
1.6.20 | 31 | 09/24/2023 |
1.6.19 | 31 | 09/13/2023 |
1.6.18 | 30 | 08/10/2023 |
1.6.17 | 32 | 08/04/2023 |
1.6.16 | 30 | 08/09/2023 |
1.6.15 | 33 | 08/11/2023 |
1.6.14 | 33 | 08/05/2023 |
1.6.13 | 32 | 08/16/2023 |
1.6.12 | 33 | 08/18/2023 |
1.6.11 | 34 | 08/05/2023 |
1.6.10 | 33 | 08/09/2023 |
1.6.9 | 31 | 09/23/2023 |
1.6.8 | 38 | 08/04/2023 |
1.6.7 | 32 | 08/05/2023 |
1.6.6 | 40 | 08/11/2023 |
1.6.5 | 31 | 08/10/2023 |
1.6.4 | 31 | 08/04/2023 |
1.6.3 | 33 | 08/10/2023 |
1.6.2 | 30 | 08/15/2023 |
1.6.1 | 40 | 08/09/2023 |
1.6.0 | 32 | 08/09/2023 |
1.5.9 | 30 | 08/09/2023 |
1.5.8 | 31 | 08/11/2023 |
1.5.7 | 32 | 08/10/2023 |
1.5.6 | 35 | 08/06/2023 |
1.5.5 | 38 | 08/11/2023 |
1.5.4 | 31 | 08/04/2023 |
1.5.3 | 35 | 08/09/2023 |
1.5.2 | 33 | 08/15/2023 |
1.5.1 | 33 | 08/16/2023 |
1.5.0 | 28 | 08/10/2023 |
1.4.7 | 35 | 09/29/2023 |
1.4.6 | 43 | 08/04/2023 |
1.4.5 | 30 | 09/23/2023 |
1.4.4 | 35 | 09/19/2023 |
1.4.3 | 30 | 08/08/2023 |
1.4.2 | 37 | 08/07/2023 |
1.4.1 | 35 | 08/05/2023 |
1.3.4 | 32 | 08/09/2023 |
1.3.3 | 33 | 09/09/2023 |
1.3.2 | 31 | 08/15/2023 |
1.3.1 | 38 | 08/08/2023 |
1.3.0 | 30 | 08/11/2023 |
1.2.2 | 31 | 08/12/2023 |
1.2.1 | 32 | 08/05/2023 |
1.2.0 | 34 | 08/10/2023 |
1.1.1 | 30 | 08/19/2023 |
1.1.0 | 37 | 08/11/2023 |
1.0.2 | 29 | 08/23/2023 |
1.0.1 | 31 | 08/24/2023 |
1.0.0 | 31 | 08/23/2023 |
0.9.1 | 29 | 08/06/2023 |
0.9.0 | 32 | 08/06/2023 |
0.8.3 | 32 | 08/23/2023 |
0.8.2 | 34 | 08/16/2023 |
0.8.1 | 33 | 08/07/2023 |
0.8.0 | 31 | 08/15/2023 |
0.7.5 | 32 | 08/16/2023 |
0.7.4 | 33 | 08/09/2023 |
0.7.3 | 31 | 08/05/2023 |
0.7.2 | 33 | 08/11/2023 |
0.7.1 | 30 | 08/11/2023 |
0.7.0 | 33 | 08/19/2023 |
0.6.2 | 30 | 08/10/2023 |
0.6.1 | 33 | 08/05/2023 |
0.6.0 | 34 | 08/09/2023 |
0.5.2 | 33 | 08/05/2023 |
0.5.1 | 39 | 08/09/2023 |
0.5.0 | 37 | 09/06/2023 |