HangFire 1.7.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 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 prerelease version of this package available.
See the version list below for details.
Install-Package HangFire -Version 1.7.0-beta3
dotnet add package HangFire --version 1.7.0-beta3
paket add HangFire --version 1.7.0-beta3
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-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 – `BackgroundJobServerHostedService` class based on `IHostedService` interface.
• Added – IServiceCollection.AddHangfire extension 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 – 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.

Version History

Version Downloads Last updated
1.7.0-rc2 86 3/22/2019
1.7.0-rc1 499 3/15/2019
1.7.0-beta4 2,636 2/18/2019
1.7.0-beta3 100 2/15/2019
1.7.0-beta2 18,309 9/1/2018
1.7.0-beta1 32,525 3/2/2018
1.6.23 8,223 3/13/2019
1.6.22 86,054 1/25/2019
1.6.21 221,303 11/1/2018
1.6.20 317,424 7/31/2018
1.6.19 391,918 4/6/2018
1.6.18 4,892 4/5/2018
1.6.17 713,304 9/19/2017
1.6.16 50,410 9/2/2017
1.6.15 92,995 8/8/2017
1.6.14 159,090 6/16/2017
1.6.13 28,330 6/7/2017
1.6.12 274,601 3/22/2017
1.6.11 18,133 3/14/2017
1.6.10 4,998 3/13/2017
1.6.9 22,701 3/2/2017
1.6.8 156,920 12/21/2016
1.6.7 58,235 11/25/2016
1.6.6 69,015 10/13/2016
1.6.5 64,510 9/24/2016
1.6.4 51,117 8/30/2016
1.6.3 18,685 8/19/2016
1.6.2 25,993 8/5/2016
1.6.1 22,279 7/27/2016
1.6.0 12,516 7/15/2016
1.5.9 16,523 7/11/2016
1.5.8 20,841 6/17/2016
1.5.7 14,239 5/30/2016
1.5.6 41,919 4/22/2016
1.5.5 13,555 4/14/2016
1.5.4 22,814 3/22/2016
1.5.3 164,942 11/6/2015
1.5.2 12,592 10/15/2015
1.5.1 1,725 10/14/2015
1.5.0 17,913 10/1/2015
1.4.7 1,205 10/1/2015
1.4.6 17,399 8/29/2015
1.4.5 20,276 7/24/2015
1.4.4 635 7/23/2015
1.4.3 24,662 5/27/2015
1.4.2 7,844 5/6/2015
1.4.1 13,225 4/14/2015
1.3.4 38,090 2/4/2015
1.3.3 2,140 1/28/2015
1.3.2 870 1/27/2015
1.3.1 5,926 1/13/2015
1.3.0 3,975 12/10/2014
1.2.2 3,997 11/24/2014
1.2.1 606 11/22/2014
1.2.0 3,223 11/17/2014
1.1.1 11,963 9/5/2014
1.1.0 1,558 9/3/2014
1.0.2 3,963 7/1/2014
1.0.1 515 6/30/2014
1.0.0 635 6/30/2014
0.9.1 1,283 6/12/2014
0.9.0 561 6/7/2014
0.8.3 519 5/23/2014
0.8.2 428 5/21/2014
0.8.1 440 5/17/2014
0.8.0 1,370 5/2/2014
0.7.5 481 4/10/2014
0.7.4 440 4/7/2014
0.7.3 395 4/4/2014
0.7.2 384 4/4/2014
0.7.1 389 4/1/2014
0.7.0 448 3/22/2014
0.6.2 452 1/28/2014
0.6.1 396 1/27/2014
0.6.0 461 1/27/2014
0.5.2 430 11/19/2013
0.5.1 449 11/12/2013
0.5.0 1,589 11/10/2013