Hangfire 1.8.6
Prefix ReservedSee the version list below for details.
dotnet add package Hangfire --version 1.8.6
NuGet\Install-Package Hangfire -Version 1.8.6
<PackageReference Include="Hangfire" Version="1.8.6" />
<PackageVersion Include="Hangfire" Version="1.8.6" />
<PackageReference Include="Hangfire" />
paket add Hangfire --version 1.8.6
#r "nuget: Hangfire, 1.8.6"
#addin nuget:?package=Hangfire&version=1.8.6
#tool nuget:?package=Hangfire&version=1.8.6
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/
Learn more about Target Frameworks and .NET Standard.
-
.NETFramework 4.5.1
- Hangfire.Core (= 1.8.6)
- Hangfire.SqlServer (= 1.8.6)
- Microsoft.Owin.Host.SystemWeb (>= 3.0.0)
-
.NETStandard 1.3
- Hangfire.AspNetCore (= 1.8.6)
- Hangfire.Core (= 1.8.6)
- Hangfire.SqlServer (= 1.8.6)
-
.NETStandard 2.0
- Hangfire.AspNetCore (= 1.8.6)
- Hangfire.Core (= 1.8.6)
- Hangfire.SqlServer (= 1.8.6)
NuGet packages (216)
Showing the top 5 NuGet packages that depend on Hangfire:
Package | Downloads |
---|---|
VirtoCommerce.Platform.Hangfire
Virto Commerce is a flexible B2B ecommerce solution that offers powerful tools for enterprise business users. https://virtocommerce.com |
|
N3O.Umbraco.Scheduler
TODO |
|
ImmediaC.SimpleCms
ASP.NET Core based CMS |
|
ComplianceAuditSystems.AcabimCommonServices
Package Description |
|
Bnsights.Mvc
Bnsights.Mvc is RAD Helper DLL for MVC Projects in Bnsights DMCC. Also known as Bnsights Business Solutions Framework (BBSF). |
GitHub repositories (32)
Showing the top 20 popular GitHub repositories that depend on Hangfire:
Repository | Stars |
---|---|
Kareadita/Kavita
Kavita is a fast, feature rich, cross platform reading server. Built with the goal of being a full solution for all your reading needs. Setup your own server and share your reading collection with your friends and family.
|
|
elsa-workflows/elsa-core
A .NET workflows library
|
|
fullstackhero/dotnet-starter-kit
Production Grade Cloud-Ready .NET 9 Starter Kit (Web API + Blazor Client) with Multitenancy Support, and Clean/Modular Architecture that saves roughly 200+ Development Hours! All Batteries Included.
|
|
fullstackhero/blazor-starter-kit
Clean Architecture Template for Blazor WebAssembly Built with MudBlazor Components.
|
|
dotnetcore/osharp
OSharp是一个基于.Net6.0的快速开发框架,框架对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebApi)、身份认证、功能权限、数据权限等模块进行更高一级的自动化封装,并规范了一套业务实现的代码结构与操作流程,使 .Net 框架更易于应用到实际项目开发中。
|
|
altmann/FluentResults
A generalised Result object implementation for .NET/C#
|
|
CoreUnion/CoreShop
基于 Asp.Net Core 8.0、Uni-App开发,支持可视化布局的小程序商城系统,前后端分离,支持分布式部署,跨平台运行,拥有分销、代理、团购、拼团、秒杀、直播、优惠券、自定义表单等众多营销功能,拥有完整SKU、下单、售后、物流流程。支持一套代码编译发布微信小程序版、H5版、Android版、iOS版、支付宝小程序版、字节跳动小程序版、QQ小程序版等共10个平台。
|
|
VirtoCommerce/vc-platform
Virto Commerce B2B Innovation Platform
|
|
ldqk/Masuit.MyBlogs
基于C#/.NET8的 masuit.org个人博客站项目源码,https://masuit.org ,供参考、学习、引用、非商业性质的部署。
|
|
CodeMazeBlog/CodeMazeGuides
The main repository for all the Code Maze guides
|
|
trueai-org/module-shop
一个基于 .NET 8.0 构建的简单、跨平台、模块化的商城系统
|
|
HTBox/allReady
This repo contains the code for allReady, an open-source solution focused on increasing awareness, efficiency and impact of preparedness campaigns as they are delivered by humanitarian and disaster response organizations in local communities.
|
|
masastack/MASA.Framework
.NET next-generation microservice development framework, which provides cloud native best practices based on Dapr.
|
|
q315523275/FamilyBucket
集合.net core、ocelot、consul、netty、rpc、eventbus、configserver、tracing、sqlsugar、vue-admin、基础管理平台等构建的微服务一条龙应用
|
|
revoframework/Revo
Event Sourcing, CQRS and DDD framework for C#/.NET Core.
|
|
Dynatrace/superdump
A service for automated crash-dump analysis
|
|
lingarr-translate/lingarr
Lingarr is an application that supports both local and SaaS translation services to translate subtitle files into a specified target language. With automated translation options, Lingarr simplifies translating subtitles.
|
|
mehdihadeli/food-delivery-modular-monolith
🌭 A practical and imaginary food and grocery delivery modular monolith, built with .Net 8, Domain-Driven Design, CQRS, Vertical Slice Architecture, Event-Driven Architecture, and the latest technologies.
|
|
Texnomic/SecureDNS
Secure, Modern, Fully-Featured, All-In-One Cross-Architecture & Cross-Platform DNS Server Using .NET 8.0
|
|
CervantesSec/cervantes
Cervantes is an open-source, collaborative platform designed specifically for pentesters and red teams. It serves as a comprehensive management tool, streamlining the organization of projects, clients, vulnerabilities, and reports in a single, centralized location.
|
Version | Downloads | Last updated |
---|---|---|
1.8.20 | 180,860 | 5/16/2025 |
1.8.19 | 5,601 | 5/16/2025 |
1.8.18 | 1,208,496 | 2/17/2025 |
1.8.17 | 1,332,735 | 12/3/2024 |
1.8.16 | 119,928 | 11/27/2024 |
1.8.15 | 800,617 | 10/23/2024 |
1.8.14 | 3,298,573 | 6/11/2024 |
1.8.12 | 2,028,741 | 4/3/2024 |
1.8.11 | 947,169 | 2/23/2024 |
1.8.10 | 323,598 | 2/12/2024 |
1.8.9 | 550,900 | 1/24/2024 |
1.8.7 | 606,583 | 12/29/2023 |
1.8.6 | 1,681,144 | 10/18/2023 |
1.8.5 | 1,481,196 | 8/11/2023 |
1.8.4 | 296,811 | 7/27/2023 |
1.8.3 | 692,817 | 6/27/2023 |
1.8.2 | 736,130 | 5/26/2023 |
1.8.1 | 202,930 | 5/18/2023 |
1.8.0 | 511,635 | 4/28/2023 |
1.7.37 | 143,392 | 4/8/2024 |
1.7.36 | 236,134 | 6/29/2023 |
1.7.35 | 44,657 | 5/18/2023 |
1.7.34 | 706,054 | 3/30/2023 |
1.7.33 | 1,405,868 | 1/31/2023 |
1.7.32 | 1,555,507 | 11/21/2022 |
1.7.31 | 2,556,407 | 8/19/2022 |
1.7.30 | 1,729,707 | 6/10/2022 |
1.7.29 | 379,128 | 5/23/2022 |
1.7.28 | 3,922,978 | 12/18/2021 |
1.7.27 | 1,109,630 | 11/3/2021 |
1.7.26 | 166,021 | 10/27/2021 |
1.7.25 | 1,323,332 | 8/30/2021 |
1.7.24 | 1,361,960 | 6/28/2021 |
1.7.23 | 736,958 | 5/28/2021 |
1.7.22 | 928,227 | 4/13/2021 |
1.7.21 | 15,621 | 4/12/2021 |
1.7.20 | 428,722 | 3/19/2021 |
1.7.19 | 1,530,697 | 1/15/2021 |
1.7.18 | 1,156,575 | 11/20/2020 |
1.7.17 | 624,693 | 10/20/2020 |
1.7.16 | 139,129 | 10/14/2020 |
1.7.15 | 81,532 | 10/8/2020 |
1.7.14 | 587,002 | 9/24/2020 |
1.7.13 | 155,218 | 9/15/2020 |
1.7.12 | 886,465 | 7/24/2020 |
1.7.11 | 2,636,146 | 4/15/2020 |
1.7.10 | 302,258 | 4/2/2020 |
1.7.9 | 2,403,644 | 1/20/2020 |
1.7.8 | 782,921 | 12/5/2019 |
1.7.7 | 885,467 | 10/22/2019 |
1.7.6 | 1,570,720 | 8/5/2019 |
1.7.5 | 349,697 | 7/18/2019 |
1.7.4 | 351,213 | 6/28/2019 |
1.7.3 | 706,511 | 5/23/2019 |
1.7.2 | 464,601 | 4/29/2019 |
1.7.1 | 426,041 | 4/16/2019 |
1.7.0 | 375,192 | 3/29/2019 |
1.6.30 | 45,033 | 4/29/2021 |
1.6.29 | 63,695 | 4/15/2020 |
1.6.28 | 82,746 | 1/14/2020 |
1.6.27 | 62,520 | 6/27/2019 |
1.6.26 | 76,241 | 5/23/2019 |
1.6.25 | 22,797 | 4/9/2019 |
1.6.24 | 138,046 | 3/27/2019 |
1.6.23 | 216,862 | 3/13/2019 |
1.6.22 | 688,403 | 1/25/2019 |
1.6.21 | 1,174,604 | 11/1/2018 |
1.6.20 | 1,192,163 | 7/31/2018 |
1.6.19 | 1,337,200 | 4/6/2018 |
1.6.18 | 28,256 | 4/5/2018 |
1.6.17 | 1,629,461 | 9/19/2017 |
1.6.16 | 175,418 | 9/2/2017 |
1.6.15 | 254,496 | 8/8/2017 |
1.6.14 | 338,838 | 6/16/2017 |
1.6.13 | 71,001 | 6/7/2017 |
1.6.12 | 593,820 | 3/22/2017 |
1.6.11 | 44,151 | 3/14/2017 |
1.6.10 | 12,522 | 3/13/2017 |
1.6.9 | 52,529 | 3/2/2017 |
1.6.8 | 403,543 | 12/21/2016 |
1.6.7 | 205,153 | 11/25/2016 |
1.6.6 | 196,519 | 10/13/2016 |
1.6.5 | 105,312 | 9/24/2016 |
1.6.4 | 84,231 | 8/30/2016 |
1.6.3 | 42,596 | 8/19/2016 |
1.6.2 | 53,649 | 8/5/2016 |
1.6.1 | 63,917 | 7/27/2016 |
1.6.0 | 51,615 | 7/15/2016 |
1.5.9 | 158,578 | 7/11/2016 |
1.5.8 | 60,704 | 6/17/2016 |
1.5.7 | 23,561 | 5/30/2016 |
1.5.6 | 63,963 | 4/22/2016 |
1.5.5 | 21,615 | 4/14/2016 |
1.5.4 | 53,478 | 3/22/2016 |
1.5.3 | 315,277 | 11/6/2015 |
1.5.2 | 28,514 | 10/15/2015 |
1.5.1 | 7,284 | 10/14/2015 |
1.5.0 | 56,732 | 10/1/2015 |
1.4.7 | 6,924 | 10/1/2015 |
1.4.6 | 28,034 | 8/29/2015 |
1.4.5 | 38,573 | 7/24/2015 |
1.4.4 | 6,312 | 7/23/2015 |
1.4.3 | 64,978 | 5/27/2015 |
1.4.2 | 14,303 | 5/6/2015 |
1.4.1 | 40,456 | 4/14/2015 |
1.3.4 | 61,168 | 2/4/2015 |
1.3.3 | 9,448 | 1/28/2015 |
1.3.2 | 6,643 | 1/27/2015 |
1.3.1 | 12,059 | 1/13/2015 |
1.3.0 | 12,603 | 12/10/2014 |
1.2.2 | 14,718 | 11/24/2014 |
1.2.1 | 6,189 | 11/22/2014 |
1.2.0 | 9,244 | 11/17/2014 |
1.1.1 | 27,658 | 9/5/2014 |
1.1.0 | 7,510 | 9/3/2014 |
1.0.2 | 10,171 | 7/1/2014 |
1.0.1 | 6,388 | 6/30/2014 |
1.0.0 | 6,587 | 6/30/2014 |
0.9.1 | 6,637 | 6/12/2014 |
0.9.0 | 4,940 | 6/7/2014 |
0.8.3 | 5,322 | 5/23/2014 |
0.8.2 | 4,895 | 5/21/2014 |
0.8.1 | 5,045 | 5/17/2014 |
0.8.0 | 7,505 | 5/2/2014 |
0.7.5 | 6,009 | 4/10/2014 |
0.7.4 | 5,142 | 4/7/2014 |
0.7.3 | 4,824 | 4/4/2014 |
0.7.2 | 5,113 | 4/4/2014 |
0.7.1 | 5,594 | 4/1/2014 |
0.7.0 | 5,314 | 3/22/2014 |
0.6.2 | 3,592 | 1/28/2014 |
0.6.1 | 3,551 | 1/27/2014 |
0.6.0 | 3,616 | 1/27/2014 |
0.5.2 | 3,580 | 11/19/2013 |
0.5.1 | 3,609 | 11/12/2013 |
0.5.0 | 5,066 | 11/10/2013 |
Release notes are available in our blog https://www.hangfire.io/blog/
Please see https://docs.hangfire.io/en/latest/upgrade-guides/upgrading-to-hangfire-1.8.html to learn how to upgrade.
1.8.6
• Changed – Update jQuery library in Dashboard UI to version 3.7.1.
• Changed – Mark all types in Hangfire.Annotations with `EditorBrowsableAttribute(Never)`.
• Changed – Change state card colors for the Awaiting state to match the Scheduled state.
• Fixed – Exception when deserializing an instance of the `AutomaticRetryAttribute` class from JSON.
• Fixed – Add serialization-related constructors for all the exception classes.
• Fixed – Use invariant culture or ordinal comparisons for internal strings.
• Fixed – Use invariant culture when formatting key names for metrics.
• Fixed – Use `CurrentCulture` instead of `CurrentUICulture` when displaying time.
• Project – Enable running static analysis by Coverity Scan weekly.
• Project – Enable mandatory static analysis by the Microsoft.CodeAnalysis.NetAnalyzers package.
• Project – Change MSBuild path when building using newer .NET SDKs for Razor views.
Hangfire.SqlServer
• Fixed – Exception in Dashboard UI when schema version is not present in a database.
• Fixed – `DbCommand` resource leak when releasing a lock detected by static analysis.
• Fixed – Don't add SQL Server-related metrics multiple times in Dashboard UI.
Hangfire.NetCore
• Fixed – Include assembly information to the Hangfire.NetCore assembly.
1.8.5
Hangfire.Core
• Added – Possibility to inform a `FaviconPath` on `DashboardOptions` (by @cezar-pimentel).
• Fixed – Inability to restore a disabled recurring job, regression in version 1.8.3.
• Fixed – Make it possible to serialize the `AutomaticRetryAttribute` filter to JSON.
Hangfire.SqlServer
• Fixed – "Query processor could not produce a query plan" when removing expired counters in `Schema 5`.
1.8.4
Hangfire.Core
• Added – Pass server id from a worker to the `PerformContext.ServerId` property available in filters.
• Fixed – Send heartbeats until full background processing server shutdown.
Hangfire.NetCore
• Changed – Send the stop signal earlier in the shutdown pipeline when hosting in .NET Core 3.1 or higher.
• Changed – Set processing server to null in hosted service to avoid `ObjectDisposedException`.
• Fixed – Other `IHostedService` implementations can block Hangfire server from being stopped.
1.8.3
Hangfire.Core
• Changed – Allow to configure `MaxLinesInStackTrace` for a particular `FailedState` instance.
• Fixed – Remove job id from schedule when it's not in the Scheduled state for some reason.
• Fixed – Missing invocations of recurring jobs when the new "Ignorable" option is used.
• Fixed – Make `DisableConcurrentExecutionAttribute` and `LatencyTimeoutAttribute` serializable.
1.8.2
Hangfire.Core
• Changed – Disable transactional job creation feature appeared in 1.8.0.
• Fixed – "Can not start continuation XXX" error when storage supports transactional job creation.
Hangfire.SqlServer
• Fixed – `InvalidOperationException` with new dashboard metrics when a database has multiple data/log files.
1.8.1
Hangfire.Core
• Added – `MisfireHandlingMode.Ignorable` to avoid scheduling recurring jobs on missed schedules.
• Added – Support disabling dark mode via the `DashboardOptions.DarkModeEnabled` property.
• Changed – Remove the 1-hour limitation for the `WithJobExpirationTimeout` configuration method.
• Fixed – Add missing `UseDefaultCulture` configuration method overloads.
• Fixed – Add missing `UseDashboardStylesheet` and `UseJobDetailsRenderer` configuration methods.
• Fixed – Give even more space for identifiers on the Recurring Jobs page.
• Fixed – `state-card-state-active` color is not very dark (by @coolhome).
• Fixed – Slightly change chart proportions to fit 4K in Dashboard UI.
Hangfire.SqlServer
• Fixed – Blocked workers regression since 1.7.33 when using multiple servers inside a process.
• Fixed – Target schema version is less than the current schema version error.
• Fixed – Implement database metrics without the need for additional permissions.
• Fixed – Use the `forceseek` table hint whenever possible to avoid performance drops.
Hangfire.NetCore
• Fixed – Add `net461` target for Hangfire.NetCore package to avoid missing method exceptions.
1.8.0
Hangfire.Core
• Breaking – Dropped the `NET45` platform target in favor of the `NET451` target to support Visual Studio 2022.
• 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 – Allow to filter exception types in `AutomaticRetryAttribute` by using the new `OnlyOn` property.
• Added – `DeletedState` now has the persisted `Exception` property populated after a failure.
• 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 – Make it possible to specify multiple `JobContinuationOptions` values for a continuation.
• Added – `BackgroundJobServerOptions.IsLightweightServer` option to run a server with no storage processes.
• 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 a job for each missed recurring job occurrence.
• Added – Support for default culture and UI culture via the `UseDefaultCulture` configuration method.
• Added – Introduce the `captureDefault` parameter in the `CaptureCulture` filter.
• Added – `IGlobalConfiguration.UseFilterProvider` extension method to unify the configuration.
• Added – Built-in `Remove` method for `JobFilterCollection` to remove global filters based on their type.
• Added – `CompatibilityLevel.Version_180` flag to avoid storing culture parameters when they are the same as the default ones.
• Changed – Create job atomically when `Transaction.CreateJob` feature is supported by the storage.
• Changed – Query time from storage in recurring and delayed schedulers when supported by storage.
• Changed – Move job to the `DeletedState` instead of `SucceededState` when its invocation was canceled by a filter.
• Changed – Speedup delayed jobs when a custom default queue is specified by avoiding extra state transition.
• Changed – Use UI culture from `CurrentCulture` parameter when `CurrentUICulture` one is missing.
• Changed – Increase the default value for the `BackgroundJobServerOptions.StopTimeout` to 500 ms.
• 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 depending on the system settings (by @danillewin).
• Added – Dashboard UI now has a 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 – `DefaultRecordsPerPage` property on the `DashboardOptions` class (by @PaulARoy).
• Added – `IGlobalConfiguration.UseJobDetailsRenderer` method for custom renderers for the 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.
• Added – Support for new `MonitoringApi` methods for the Awaiting Jobs page.
• Changed – Make it possible to display methods of non-loaded jobs in the Dashboard UI when supported by storage.
• Changed – Improved display of realtime chart with more accents on failed and deleted jobs.
• Changed – Don't display the queue name in the state transition list when it's the `default` one.
• Changed – Display scheduled job count when the 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 a transaction to background job state changer when new methods are implemented.
• Changed – Ignore some members when serializing a `JobFilterAttribute` instance to decrease the payload size.
Storage
• Added – Virtual `JobStorage.GetReadOnlyConnection` method intended to return `JobStorageConnection` for replicas.
• Added – Virtual `JobStorage.HasFeature` method for querying optional features.
• Added – The `JobStorageFeatures` class to avoid using magic strings in storage features.
• Added – Optional `GetSetCount`, `GetSetContains`, and `GetUtcDateTime` methods for the `JobStorageConnection` class.
• Added – Optional `AcquireDistributedLock` and `RemoveFromQueue` methods for the `JobStorageTransaction` class.
• Added – Optional `CreateJob` and `SetJobParameter` methods for the `JobStorageTransaction` class.
• Added – Optional `ParametersSnapshot` property for `BackgroundJob` and `JobData` classes to minimize roundtrips in the future.
• Added – Support for transactional acknowledgment using a new storage method for better handling some data loss scenarios.
• Added – Fetch `Retries` and `Awaiting` metrics in `StatisticsDto` properties when supported by storage.
• Added – The `JobStorageMonitor` class with more available methods for the new features.
• Changed – Allow to query job parameters without additional roundtrip when supported by storage.
• Changed – Expose state data dictionaries in list DTOs when supported by storage.
• Changed – Rely on storage indexing with the `Monitoring.AwaitingJobs` feature.
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 the `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.NetCore
• Added – `IApplicationBuilder.UseHangfireServer` that accepts custom factory for `IBackgroundProcessingServer`.
• Added – `net451` and `netstandard1.3` targets for the package.
• Changed – Use `netstandard2.1` target instead of `netcoreapp3.0` for the package.
• Changed – Send the "stop" signal earlier when the host supports .NET Standard 2.1.
• Changed – Don't throw `ObjectDisposedException` when hosted service is disposed twice.
Hangfire.AspNetCore
• Breaking – Make the package to be dependent on Hangfire.NetCore and use the same types.
• Added – `IApplicationBuilder.UseHangfireServer` that accepts custom factory for `IBackgroundProcessingServer`.
Hangfire.SqlServer
• Breaking – Prioritise Microsoft.Data.SqlClient package over System.Data.SqlClient one.
• Breaking – Dropped the `NET45` platform target in favor of the `NET451` target to support Visual Studio 2022.
• Added – `Schema 8` migration with fixed `JobQueue.Id` column to use the `bigint` type.
• Added – `Schema 9` migration that creates an index for the `State.CreatedAt` column.
• Added – Automatic client package detection based on available types, preferring `System.Data.SqlClient` (by @0xced).
• Added – `SqlServerStorageOptions.DbProviderFactory` option to use a custom provider factory.
• Added – Clean up of old state entries of a non-finished job when `InactiveStateExpirationTimeout` is set.
• Added – `TryAutoDetectSchemaDependentOptions` option to automatically enable options based on the schema.
• Added – Optional experimental transactional acknowledge for SQL Server (`UseTransactionalAcknowledge` option).
• Added – Implement the `Connection.GetUtcDateTime` feature to make work the new changes in schedulers.
• Added – `SqlServerStorage.SchemaVersion` metric for Dashboard UI.
• Added – `DefaultQueueProvider` option to specify a custom default queue provider.
• 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 a 5-minute timeout.
• Changed – Use command batching by default with a 5-minute maximum timeout.
• Changed – Enable the `UseRecommendedIsolationLevel` option by default.
• Changed – `GetJobData` now populates the `JobData.ParametersSnapshot` property to avoid additional roundtrips.
• Changed – Display scheduled and processing jobs in ascending order in Dashboard UI.
• Changed – Implement the `Transaction.AcquireDistributedLock` feature.
• Changed – Implement the `GetSetCount.Limited feature`.
• Changed – Implement the `GetSetContains feature`.
• Changed – Bump the internal version of Dapper to 2.0.123.
• Changed – Enable common metrics for SQL Server storage to be shown by default.
• Changed – Enable the `Monitoring.AwaitingJobs` feature for SQL storage.
• Deprecated – `UsePageLocksOnDequeue` option is now obsolete and doesn't affect anything.
Hangfire.SqlServer.Msmq
• Breaking – Dropped the `NET45` platform target in favor of the `NET451` target to support Visual Studio 2022.