Hangfire.SqlServer 1.7.28

SQL Server 2008+ (including Express), SQL Server LocalDB and SQL Azure storage support for Hangfire (background job system for ASP.NET applications).

No packages depend on Hangfire.SqlServer.

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.28 • Fixed – Possibly fixed CPU consumption problems and high amounts of fetching queries after deploys to IIS. • Fixed – No more than a single long-polling query is allowed per storage instance when using sub-second polling. • Fixed – Don't depend on thread pool when sending heartbeats for active jobs to avoid problems when it's starved. 1.7.25 • Fixed – Avoid any blocked rows when removing inactive servers from the `Server` table. 1.7.24 • Changed – Don't use the `readcommittedlock` table hint when not required. • Project – Stop using `TransactionScope` class in tests, re-create database instead. • Project – Make it possible to run SQL Server tests on Mono on Linux. 1.7.23 • Fixed – `NotImplementedException` in `Transaction.EnlistPromotableSinglePhase` when running on Mono. 1.7.21 • Fixed – Ensure connection is released when exception is thrown when during lock release. • Fixed – "A network-related or instance-specific error" when using `DisableConcurrentExecution` for long-running jobs. 1.7.20 Please see https://www.hangfire.io/blog/2021/03/19/hangfire-1.7.20.html for details, manual changes required for those who already migrated to Schema 6 and 7. This problem will be also fixed in a new migration in Hangfire 1.8.0. • Fixed – `Schema 6` migration now fixes problem that prevents 2,147,483,648th job from being enqueued. 1.7.19 • Fixed – Return `null` instead of throwing FormatException when job id can't be parsed. • Project – Run the entire Hangfire.SqlServer test suite against the new Microsoft.Data.SqlClient package. 1.7.18 • Added – `SqlServerStorageOptions.DeleteExpiredBatchSize` option to remove more expired records in a single pass. • Fixed – Don't throw from `SqlServerStorage.ToString` method when using custom factory or existing connection. 1.7.17 • Fixed – SqlException "Incorrect syntax near 'throw'" after upgrading to 1.7.15 when using SQL Server 2008 or 2008R2. 1.7.16 • Fixed – Blocking problems when using multiple storages with the same queue names in the same process (appeared in 1.7.9). 1.7.15 • Fixed – Avoid deadlocks when using the `SetJobParameter` method without introducing issues for older schemas. • Fixed – Remove duplicate sorting in the `SqlServerMonitoringApi.GetJobs` method which is used by a lot of queries. 1.7.14 • Fixed – Duplicate entries in the `JobParameters` table after upgrading to version 1.7.13. • Fixed – Extensive retries on a method that has a retry attribute after upgrading to 1.7.13. • Fixed – "ArgumentException: An item with the same key has already been added. Key: RetryCount" in `SqlServerMonitoringApi`. 1.7.13 • Added – `UseIgnoreDupKeyOption` for SQL Server storage configuration (changes to [Set] and [Hash] tables required). • Fixed – Don't truncate too long keys silently, throw exceptions instead. • Fixed – Add missing null checks for methods in the `SqlServerWriteOnlyTransaction` class. • Fixed – Change `holdlock` hint to `xlock` in `merge` statements in transaction to prevent deadlocks. • Fixed – Don't rethrow "Lock request time out period exceeded" exceptions from expiration manager. • Fixed – Increase [Server].[Id] column's length to 200 for new installations. 1.7.10 • Changed – Use `XACT_ABORT` option for `ExpirationManager` queries. • Changed – Don't rely on implicit rollback when disposing transactions. • Fixed – `NullReferenceException` in logs thrown from `SqlInternalTransaction.Rollback` method. 1.7.9 • Changed – Implement long polling fetch for sub-second polling delays without `sp_getapplock`. • Fixed – Don't leak `DbConnection` instance when an exception occurs during its opening. • Fixed – Can not obtain connection from the pool exception after database was offline. • Fixed – High number of waits in SQL Server when Hangfire Servers are idle. 1.7.8 • Added – Support for Microsoft.Data.SqlClient package when using a custom connection factory (Part II). • Fixed – Remove `System.Data.SqlClient` dependency from `SqlCommandBatch` and `ExpirationManager`. 1.7.7 • Added – Add support for Microsoft.Data.SqlClient package when using custom connection factory (Part I). • Added – Add `UseFineGrainedLocks` option to avoid deadlocks in some theoretical cases. • Added – Add missing overload for `UseSqlServerStorage` with connection factory parameter only. • Added – Expose the SqlServerObjectsInstaller.GetInstallScript method (by @altso). • Fixed – Make command batching working on .NET Core when using System.Data.SqlClient 4.7.0 and higher. • Fixed – Permit dash characters (`-`) in schema names (by @kendaleiv). • Fixed – Escape square bracket characters in schema names. • Project – Add support for `netcoreapp3.0` target in Hangfire.SqlServer.Tests. • Project – Take schema name from constant in Hangfire.SqlServer.Tests (by @kendaleiv). • Project – Make Hangfire.SqlServer.Tests work on Linux in Travis CI environment. 1.7.4 • Fixed – Potential deadlocks cause by suboptimal queries when using `SlidingInvisibilityTimeout` fetching. • Fixed – Prevent zero delays between fetch retry attempts when lock acquisition failed without blocking. • Fixed – Specify float precision explicitly for the `Score` column in the `AddToSet` method. 1.7.3 • Fixed – Wrong error message in migration script, when @CurrentSchemaVersion has a NULL value (by @penenkel). 1.7.2 • Fixed – Occasional "DataException: Error parsing column" error when using blocking fetch. 1.7.1 • Changed – Use blocking fetch implementation only for sub-second polling intervals. • Fixed – Don't fail with an exception when can't connect to MSSQL instance during start-up. • Fixed – Don't access the `JobQueue` table when using blocking query and don't have results. 1.7.0 • Added – Full .NET Core 2.0 support by explicitly targeting .NET Standard 2.0. • Added – `Schema 7` migration to fix the `IX_HangFire_Set_Score` index to include the `Key` column. • Added – `Schema 6` migration with less indexes, better physical layout and `bigint` support (disabled by default). • Added – Blocking fetch support for sliding expiration-based fetch to avoid excessive polling. • Added – `SqlServerStorageOptions.EnableHeavyMigrations` switch to automatically install even heavy migrations. • Added – `SqlServerStorageOptions.DisableGlobalLocks` property to avoid custom locking scheme. • Added – `SqlServerStorageOptions.UsePageLocksOnDequeue` property to use less CPU consuming fetch. • Added – Callback method to allow to open the database with impersonation (by @BjoernHund). • Added – `SqlServerStorageOptions.UseRecommendedIsolationLevel` option to set the minimum possible level. • Changed – Identity columns either converted to the `bigint` type, or entirely removed. • Changed – Clustered indexes were organized according to the access patterns of their tables. • Changed – Most of secondary indexes were either removed or made filtered. • Changed – Optimize sliding-expiration-based fetching to use even less CPU time. • Changed – Use write reordering and fine-grained locking scheme to improve parallelism. • Changed – Monitoring API doesn't check state data to see state transition time. • Changed – Allow to use zero-based poll interval when sliding invisibility timeout. • Changed – Short paths for the `CreateExpiredJob` method to avoid some round-trips. • Changed – Set `SqlParameter` types explicitly to not to duplicate query plans. • Changed – Batch support for `AddToQueue` method when default provider is used. • Changed – Check `FetchedAt` has expected value to prevent prolonging others' work. • Changed – Use more recent Dapper 1.50.7 on all platforms except .NET Framework 4.5. • Changed – Dapper package is internalized now even on .NET Core to avoid possible conflicts. • Fixed – Avoid unnecessary waits in state changer when job was already expired. • Fixed – Cannot resolve the collation conflict in `CountersAggregator`. • Fixed – Background processing stops when identity columns exceed the `Int32.MaxValue`. • Fixed – Slowdown of scheduled jobs due to the missing index on the `[Set]` table.

.NET Framework 4.5

.NET Standard 1.3

.NET Standard 2.0

Version Downloads Last updated
1.8.14 0 6/11/2024
1.8.12 0 4/3/2024
1.8.11 0 2/23/2024
1.8.10 0 2/12/2024
1.8.9 0 1/24/2024
1.8.7 0 12/29/2023
1.8.6 1 10/18/2023
1.8.5 0 8/11/2023
1.8.4 0 7/27/2023
1.8.3 0 6/27/2023
1.8.2 1 10/18/2023
1.8.1 0 5/18/2023
1.8.0 0 4/28/2023
1.7.37 0 4/8/2024
1.7.36 0 6/29/2023
1.7.35 0 5/18/2023
1.7.34 0 3/30/2023
1.7.33 0 1/31/2023
1.7.32 0 11/21/2022
1.7.31 0 8/19/2022
1.7.30 0 6/10/2022
1.7.29 0 5/23/2022
1.7.28 1 10/27/2023
1.7.27 0 11/3/2021
1.7.26 0 10/27/2021
1.7.25 0 8/30/2021
1.7.24 0 6/28/2021
1.7.23 0 5/28/2021
1.7.22 0 4/13/2021
1.7.21 0 4/12/2021
1.7.20 0 3/19/2021
1.7.19 0 1/15/2021
1.7.18 0 11/20/2020
1.7.17 0 10/20/2020
1.7.16 0 10/14/2020
1.7.15 0 10/8/2020
1.7.14 0 9/24/2020
1.7.13 0 9/15/2020
1.7.12 0 7/24/2020
1.7.11 0 4/15/2020
1.7.10 0 4/2/2020
1.7.9 0 1/20/2020
1.7.8 0 12/5/2019
1.7.7 0 10/22/2019
1.7.6 0 8/5/2019
1.7.5 0 7/18/2019
1.7.4 0 6/28/2019
1.7.3 0 5/23/2019
1.7.2 0 4/29/2019
1.7.1 0 4/16/2019
1.7.0 0 3/29/2019
1.6.30 0 4/29/2021
1.6.29 0 4/15/2020
1.6.28 0 1/14/2020
1.6.27 0 6/27/2019
1.6.26 0 5/23/2019
1.6.25 0 4/9/2019
1.6.24 0 3/27/2019
1.6.23 0 3/13/2019
1.6.22 0 1/25/2019
1.6.21 0 11/1/2018
1.6.20 0 7/31/2018
1.6.19 0 4/6/2018
1.6.18 0 4/5/2018
1.6.17 0 9/19/2017
1.6.16 0 9/2/2017
1.6.15 0 8/8/2017
1.6.14 0 6/16/2017
1.6.13 0 6/7/2017
1.6.12 0 3/22/2017
1.6.11 0 3/14/2017
1.6.10 0 3/13/2017
1.6.9 0 3/2/2017
1.6.8 0 12/21/2016
1.6.7 0 11/25/2016
1.6.6 0 10/13/2016
1.6.5 0 9/24/2016
1.6.4 0 8/30/2016
1.6.3 0 8/19/2016
1.6.2 0 8/5/2016
1.6.1 0 7/27/2016
1.6.0 0 7/15/2016
1.5.9 0 7/11/2016
1.5.8 0 6/17/2016
1.5.7 0 5/30/2016
1.5.6 0 4/22/2016
1.5.5 0 4/14/2016
1.5.4 0 3/22/2016
1.5.3 0 11/6/2015
1.5.2 0 10/15/2015
1.5.1 0 10/14/2015
1.5.0 0 10/1/2015
1.4.7 0 10/1/2015
1.4.6 0 8/29/2015
1.4.5 0 7/24/2015
1.4.4 0 7/23/2015
1.4.3 0 5/27/2015
1.4.2 0 5/6/2015
1.4.1 0 4/14/2015
1.3.4 0 2/4/2015
1.3.3 0 1/28/2015
1.3.2 0 1/27/2015
1.3.1 0 1/13/2015
1.3.0 0 12/10/2014
1.2.2 0 11/24/2014
1.2.1 0 11/22/2014
1.2.0 0 11/17/2014
1.1.1 0 9/5/2014
1.1.0 0 9/3/2014
1.0.2 0 7/1/2014
1.0.1 0 6/30/2014
1.0.0 0 6/30/2014
0.9.1 0 6/12/2014
0.9.0 0 6/7/2014
0.8.3 0 5/23/2014
0.8.2 0 5/21/2014
0.8.1 0 5/17/2014
0.8.0 0 5/2/2014
0.7.5 0 4/10/2014
0.7.4 0 4/7/2014
0.7.3 0 4/4/2014
0.7.1 0 4/1/2014
0.7.0 0 3/22/2014