HangFire 1.7.0-rc1

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 application. 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/

This is a prerelease version of HangFire.
There is a newer version of this package available.
See the version list below for details.
The owner has unlisted this package. This could mean that the package is deprecated or shouldn't be used anymore.
Install-Package HangFire -Version 1.7.0-rc1
dotnet add package HangFire --version 1.7.0-rc1
<PackageReference Include="HangFire" Version="1.7.0-rc1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add HangFire --version 1.7.0-rc1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

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

1.7.0-rc1

Hangfire.Core

• 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.
• 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 – Use custom `SynchronizationContext` for async methods to run their continuations on worker thread.
• 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.
• Fixed – Worker now logs an error, when all the state change attempts failed due to an exception.
• Fixed – Ensure `RecurringJobScheduler` doesn't go into infinite loop when there's server of an older version.
• Fixed – Implement `BackgroundTaskScheduler.MaximumConcurrencyLevel` property.
• Fixed – Dashboard renderer for `AwaitingState` displays `Option` property as string again.
• 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`.
• Project – Add `DataCompatibilityRangeFact` and `DataCompatibilityRangeTheory` classes for compatibility checks.
• Project – Reduce test execution time by removing unnecessary waits.
• Ported – Merged updates from version 1.6.23.

Hangfire.AspNetCore

• Changed – Remove internal service registrations that are inconsistent with server options.
• Ported – Merged updates from version 1.6.23.

Hangfire.SqlServer

• Added – `SqlServerStorageOptions.EnableHeavyMigrations` switch to automatically install even heavy migrations.
• Added – `Schema 7` migration to fix the `IX_HangFire_Set_Score` index to include the `Key` column.
• Added – `SqlServerStorageOptions.DisableGlobalLocks` property to avoid custom locking scheme.
• Added – `SqlServerStorageOptions.UsePageLocksOnDequeue` property to use less CPU consuming fetch.
• Changed – `Schema 6` migration is disabled by default for existing installations, because it may take too long.
• Changed – Don't throw an exception when using automatic migrations and current schema is newer than expected.
• Changed – Store arguments in the corresponding column in SQL Server again.
• Changed – Continue to use global locks by default in SQL Server storage.
• Changed – Bring `ExpirationManager` and `CountersAggregator` to their previous state.
• Changed – Monitoring API doesn't check state data to see state transition time.
• Changed – Update `CountersAggregator` to use clustered key for temp table.
• Fixed – Avoid unnecessary waits in state changer when job was already expired.
• Fixed – Cannot resolve the collation conflict in `CountersAggregator`.
• Ported – Merged updates from version 1.6.23.

1.7.0-beta4

Hangfire.Core

• Changed – `StopTimeout` introduced in 1.7.0-beta3 now defaults to zero seconds.
• Fixed – `NotSupportedException` thrown by `RecurringJobScheduler` (regression).
• Fixed – `NotSupportedException` thrown by `DelayedJobScheduler` (regression).
• Fixed – `RecurringJobManager.AddOrUpdate` method doesn't preserve `LastJobId` (regression).
• Fixed – Cache results of the `IsBatchingAvailable` method per connection type.

1.7.0-beta3

Hangfire.Core

• 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).
• Changed – New type serialization is disabled by default for compatibility reasons.
• Changed – Cronos package upgraded to 0.7.0 and internalized even on .NET Standard platforms.
• 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 – `ArgumentNullException` when job class contains method with non-resolvable generic arguments.
• Fixed – Re-add missing fonts as embedded resources due to a regression appeared in 1.7.0-beta2.
• 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 – Backward compatibility issue with type serialization when `TypeNameHandling.All` is used.
• 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.
• Ported – Merged updates from version 1.6.21 and 1.6.22.

Hangfire.AspNetCore

• Added – Full .NET Core 2.0 support by explicitly targeting .NET Standard 2.0.
• Added – An overloaded AddHangfire method with `IServiceProvider` parameter (by @ericgreenmix and @denis-ivanov).
• Added – `BackgroundJobServerHostedService` class based on `IHostedService` interface.
• Added – `IServiceCollection.AddHangfireServer` method to register the server during configuration.

Hangfire.SqlServer

• Changed – Short paths for the CreateExpiredJob method to avoid some round-trips.
• Changed – Allow to use zero-based poll interval when sliding invisibility timeout.
• 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.
• Ported – Merged updates from version 1.6.21 and 1.6.22.
     
1.7.0-beta2

Hangfire.Core

• Fixed – `MissingMethodException` when using Newtonsoft.Json 11 in .NET Core 2.X with continuations (by @pieceofsummer).
• Ported – Merged updates from versions 1.6.18 – 1.6.20.

Hangfire.SqlServer

• Added – Blocking fetch support for sliding expiration-based fetch to avoid excessive polling.
• Changed – Optimize sliding-expiration-based fetching to use even less CPU time.
• Changed – Use write reordering and fine-grained locking scheme to improve parallelism.
• Ported – Merged updates from versions 1.6.18 – 1.6.20.
   
1.7.0-beta1

Hangfire.Core

• 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 async jobs returning ValueTask<T> and other await-compatible types (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).
• Changed – Decrease the size of serialized payloads and remove version information.
• 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.

Hangfire.SqlServer

* Added – Migration for Schema 6 to use...
• Added – Callback method to allow to open the database with impersonation (by @BjoernHund).
• 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.
• 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.

Showing the top 5 GitHub repositories that depend on HangFire:

Repository Stars
tidusjar/Ombi
Want a Movie or TV Show on Plex or Emby? Use Ombi!
i66soft/osharp
osharp framework with .NETStandard2.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.
q315523275/FamilyBucket
集合.net core、ocelot、consul、netty、grpc、eventbus、configserver、tracing、sqlsugar、vue-admin、基础管理平台等构建的微服务一条龙应用
Dynatrace/superdump
A service for automated crash-dump analysis

Version History

Version Downloads Last updated
1.7.6 164,227 8/5/2019
1.7.5 46,712 7/18/2019
1.7.4 78,067 6/28/2019
1.7.3 159,480 5/23/2019
1.7.2 141,678 4/29/2019
1.7.1 70,249 4/16/2019
1.7.0 122,100 3/29/2019
1.6.27 5,638 6/27/2019
1.6.26 11,714 5/23/2019
1.6.25 6,405 4/9/2019
1.6.24 16,251 3/27/2019
1.6.23 97,849 3/13/2019
1.6.22 296,175 1/25/2019
1.6.21 410,177 11/1/2018
1.6.20 465,994 7/31/2018
1.6.19 570,894 4/6/2018
1.6.18 9,783 4/5/2018
1.6.17 865,612 9/19/2017
1.6.16 65,789 9/2/2017
1.6.15 111,690 8/8/2017
1.6.14 179,524 6/16/2017
1.6.13 32,929 6/7/2017
1.6.12 315,292 3/22/2017
1.6.11 21,357 3/14/2017
1.6.10 7,361 3/13/2017
1.6.9 27,387 3/2/2017
1.6.8 181,945 12/21/2016
1.6.7 70,100 11/25/2016
1.6.6 86,421 10/13/2016
1.6.5 75,587 9/24/2016
1.6.4 60,699 8/30/2016
1.6.3 26,014 8/19/2016
1.6.2 31,754 8/5/2016
1.6.1 25,755 7/27/2016
1.6.0 15,737 7/15/2016
1.5.9 27,783 7/11/2016
1.5.8 25,068 6/17/2016
1.5.7 16,862 5/30/2016
1.5.6 46,267 4/22/2016
1.5.5 16,016 4/14/2016
1.5.4 30,675 3/22/2016
1.5.3 179,479 11/6/2015
1.5.2 15,740 10/15/2015
1.5.1 4,013 10/14/2015
1.5.0 23,330 10/1/2015
1.4.7 3,416 10/1/2015
1.4.6 19,999 8/29/2015
1.4.5 23,968 7/24/2015
1.4.4 2,836 7/23/2015
1.4.3 27,769 5/27/2015
1.4.2 10,124 5/6/2015
1.4.1 16,838 4/14/2015
1.3.4 42,542 2/4/2015
1.3.3 4,339 1/28/2015
1.3.2 3,036 1/27/2015
1.3.1 8,194 1/13/2015
1.3.0 6,354 12/10/2014
1.2.2 7,987 11/24/2014
1.2.1 2,786 11/22/2014
1.2.0 5,454 11/17/2014
1.1.1 14,909 9/5/2014
1.1.0 3,736 9/3/2014
1.0.2 6,165 7/1/2014
1.0.1 2,704 6/30/2014
1.0.0 2,834 6/30/2014
0.9.1 2,046 6/12/2014
0.9.0 1,268 6/7/2014
0.8.3 1,214 5/23/2014
0.8.2 1,132 5/21/2014
0.8.1 1,146 5/17/2014
0.8.0 2,086 5/2/2014
0.7.5 1,182 4/10/2014
0.7.4 1,147 4/7/2014
0.7.3 1,096 4/4/2014
0.7.2 1,071 4/4/2014
0.7.1 1,094 4/1/2014
0.7.0 1,145 3/22/2014
0.6.2 1,161 1/28/2014
0.6.1 1,098 1/27/2014
0.6.0 1,166 1/27/2014
0.5.2 1,134 11/19/2013
0.5.1 1,161 11/12/2013
0.5.0 2,341 11/10/2013
Show less