HangFire 1.6.9

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.
     http://hangfire.io/

There is a newer version of this package available.
See the version list below for details.
Install-Package HangFire -Version 1.6.9
dotnet add package HangFire --version 1.6.9
<PackageReference Include="HangFire" Version="1.6.9" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add HangFire --version 1.6.9
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

http://hangfire.io/blog/
   
1.6.9

Hangfire.SqlServer
• Fixed – `TimeoutException` on large arguments or large batches via `SqlServerOptions.CommandTimeout`.

1.6.8

Hangfire.Core
• Fixed – `Cron.MonthInterval` now returns correct CRON expression.
• Fixed – Throw `NotSupportedException` early, when arguments contain delegate or expression.
• Fixed – Connection and distributed lock kept longer than necessary in `RecurringJobScheduler`.
• Fixed – Use local date/times everywhere in Dashboard UI.
• Fixed – Call chart update only when it exists in Dashboard UI to prevent JavaScript errors.
• Fixed – Scheduled column title is now displaying correctly in Dashboard UI.
• Fixed – Typo "Nexts jobs" should be "Next jobs" in Dashboard UI (by @danielabbatt).

Hangfire.SqlServer
• Fixed – Use `long` where possible instead of `int` for background job identifiers, full support will be in 1.7.0.
   
1.6.7

Hangfire.Core
• Fixed – ArgumentException when using complex arguments in generic methods like "IList<T>" (by @aidmsu).
• Fixed – Generic arrays like "T[]" aren't supported in background job arguments (by @aidmsu).
• Fixed – Wrong choice of the overload when multiple methods match the given arguments (by @aidmsu).
• Fixed – Null values for arguments when there are errors during the JSON deserialization.
• Fixed – Window resize cause errors and uncontrolled growth of event and poll listeners (by @Yarmonov).
• Fixed – HtmlHelper.ToHumanDuration incorrectly formats fractional seconds (by @pieceofsummer).
• Fixed – Exception in Dashboard UI when CRON expression is null by an accident (by @aidmsu).
• Fixed – Error in Dashboard UI when rendering an array that contains a null element (by @djfoz).
• Fixed – Inconsistent constructors' accessibility for different context classes (by @pieceofsummer).
• Fixed – Decrease the max default workers count to "20" in tests (by patrykpiotrmarek).
• Fixed – Inconsistent EOL characters in some files of a project (by @aidmsu).
• Fixed – Make Queue name accessible from RecurringJobDto (by @swordfish6975).

Hangfire.SqlServer
• Fixed – Validation added to avoid "An invalid application lock time-out" exceptions (by t0mburton).

Hangfire.AspNetCore
• Fixed – Parameterless AspNetCoreJobActivator.BeginScope method now returns a correct instance (by @pieceofsummer).

1.6.6

Hangfire.Core
• Fixed – Hangfire.Core, Hangfire.SqlServer and Hangfire.SqlServer.Msmq marked as CLS-compliant.
• Fixed – Generic methods cause ArgumentNullException when scoped variable is used in expression.

Hangfire.SqlServer
• Fixed – SqlServerJobQueue class doesn't use obsolete InvisibilityTimeout parameter anymore.
   
1.6.5

Hangfire.Core
• Added – Chinese language to Dashboard UI (by @andy-zhouyou).
• Changed – Default upper limit of worker number is 20.
• Changed – Default value for DashboardJobListLimit is now 10000.
• Fixed – Deserialization exception in continuations, when TypeNameHandling.All option is used (by @MaksimSimkin).
• Fixed – I18N is not working, because there are no localized resources in NuGet packages.
• Fixed – Infinite redirect loops, when authenticated, but not authorized user accesses Dashboard UI.
• Fixed – "The type ... exists in both..." issue when building Hangfire, related to Newtonsoft.Json.
• Fixed – Use the given type's method, when scope variable is passed to a job expression.
• Fixed – Very rare resource leaks detected by Coverity Scan.

Hangfire.SqlServer
• Fixed – Different timeout issues after making performance optimizations.
• Fixed – SQL timeouts while getting a connection, when using default settings and >= 8 CPU cores.
• Fixed – ExpirationManager is bloated by SqlError instances, when there are a lot of messages from server.
• Fixed – Counters query returned inconsistent results during CountersAggregator executions.
• Performance – Added missing NOLOCK hint for monitoring queries when using SqlServer-based queues.
• Performance – ExpirationManager is forced to use index seek operations for cascade deletions.
• Performance – CountersAggregator now uses clustered index scan to issue less logical reads.
• Performance – Paging queries in dashboard now use CTEs to utilize less logical reads.
   
1.6.4

Hangfire.SqlServer
• Fixed – `SqlConnection` object leaks when using nested distributed locks (in batches and continuations).
   
1.6.3

Hangfire.Core
• Fixed – Add missing `RecurringJob.AddOrUpdate` method overloads to prevent CS4014 warnings.
• Fixed – `ToGenericTypeString` method now handles types with no namespace correctly.

Hangfire.SqlServer
• Fixed – Prevent `ExpirationManager`'s command from timing out, when there are a lot of records.
• Fixed – `CountersAggregator` issue introduced in 1.6.2, that causes slow record aggregation.
• Fixed – Add `XLOCK` hint for `CountersAggregator` query to prevent deadlocks on lock escalation.

Hangfire.SqlServer.Msmq
• Fixed – Prevent MSMQ transactions from timing out after 1 minute of processing.
   
1.6.2

Hangfire.Core
• Changed – Recurring job page displays now raw cron strings, descriptions are in tooltips.
• Fixed – Return non-highlighted stack trace, when parsing takes too long, instead of throwing an exception.
• Fixed – Dashboard UI works correctly again, when IE 11 is in the Compatibility Mode.
• Fixed – Long method names now don't push tables out of the boundaries now.

Hangfire.SqlServer
• Changed – `JobExpirationCheckInterval` property value now defaults to 30 minutes.
• Fixed – Excessive blocking when expiring records in `State` and `JobParameters` tables.
• Fixed – Migration script `Install.sql` was deadlocked by itself, leading to errors on startup.

Hangfire.SqlServer.Msmq
• Fixed – Public MSMQ queue paths are parsed correctly now, when determining the queue length.
   
1.6.1

Hangfire.Core
• Added – Automatic unit tests execution for .NET Core on Windows, Linux and OS X using AppVeyor and Travis CI.
• Fixed – `DateTime` deserialization issues on .NET Core platform.
• Fixed – Fixed UI command behaviour, buttons can only be pressed once per command (by @mahoneyj2).
• Fixed – `TypeInitializationException` when using Serilog appeared in version 1.6.0.
• Fixed – Cron format strings for intervals are specified correctly now (by @stevetsang).
• Fixed – `NullReference` on Job Details page when background job has null value for `IEnumerable` argument.
• Fixed – Don't skip symbols when publishing NuGet packages.
• Fixed – Use GUID identifier when can't determine the host name.

Hangfire.AspNetCore
• Fixed – Add missing `GetHttpContext` extension method for the .NET Core platform.
   
1.6.0
   
Hangfire.Core
• Added – .NET Core support for Hangfire.Core and Hangfire.SqlServer packages (`netstandard1.3` target).
• Added – Ability to create jobs based on async methods, they are awaited by a worker (by @tuespetre).
• Added – Access to background job context from the `JobActivator.BeginScope` method.
• Added – Add LatencyTimeoutAttribute To delete jobs if timeout is exceeded (by @Excommunicated).
• Added – Ability to change statistics polling interval in dashboard (by @tristal).
• Added – Non-blocking `BackgroundJobServer.SendStop` method, that requests for a shutdown.
• Added – `BackgroundJobServerOptions.ServerName` option is back.
• Added – `IDashboardAuthorizationFilter` interface that makes `IAuthorizationFilter` obsolete.
• Added – Show background job continuations on Job Details page.
• Added – Multilanguage support in Dashboard via resource files (by @Elph).
• Added – Spanish localization for the Dashboard UI (by @Elph).
• Added – Enable backtracking from background job to recurrent job (by @teodimache).
• Added – Cron expressions for regular intervals for the `Cron` class (by @geirsagberg).
• Added – `IRecurringJobManager` interface for the `RecurringJobManager` class (by @arnoldasgudas).
• Added – Abstractions for Dashboard UI to decouple it from OWIN.
• Changed – Make the realtime/history graph to use localized dates on hover (by @Elph).
• Changed – Make graph tooltip also localized using data-attributes (by @Elph).
• Changed – Dashboard metric's title now contains the ResourceKey instead the title (by @Elph).
• Changed – Job Details page was redesigned to be more clean with less colors.
• Changed – Update jQuery to 2.1.4 and rickshaw.js to 1.5.1.
• Changed – Update NCrontab to 3.1.0.
• Changed – Update CronExpressionDescriptor to 1.17.
• Fixed – `ToGenericTypeString` method now supports nested classes (by @patrykpiotrmarek).
• Fixed – Dashboard Errors in Chrome and IE - Cannot read property 'removeChild' of null.
• Fixed – /hangfire/js outputs (unintended) UTF-8 BOM.

Hangfire.AspNetCore
• Added – Deep integration with ASP.NET Core via Hangfire.AspNetCore package.

Hangfire.SqlServer
• Added – .NET Core support for Hangfire.Core and Hangfire.SqlServer packages (`netstandard1.3` target).
• Added – Zero latency processing when client and server reside in the same process (by @bgurmendi).
• Changed – `SqlServerStorage` class constructor now takes `DbConnection` instances (by @tystol).
• Changed – `SqlServerObjectsInstaller` class is public now (by @vbfox).
• Changed – Update Dapper to 1.50.1 version.
• Fixed – Drop constraints on Server.Id prior to altering it to avoid conflicts.

Hangfire.SqlServer.Msmq
• Fixed – Package now depends on the latest Hangfire.SqlServer instead of version 1.2.2.

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等构建的微服务一条龙应用
Dynatrace/superdump
A service for automated crash-dump analysis

Version History

Version Downloads Last updated
1.7.5 129 7/18/2019
1.7.4 17,459 6/28/2019
1.7.3 68,784 5/23/2019
1.7.2 82,399 4/29/2019
1.7.1 45,838 4/16/2019
1.7.0 79,817 3/29/2019
1.6.27 147 6/27/2019
1.6.26 2,863 5/23/2019
1.6.25 3,177 4/9/2019
1.6.24 10,898 3/27/2019
1.6.23 72,211 3/13/2019
1.6.22 222,732 1/25/2019
1.6.21 338,888 11/1/2018
1.6.20 401,940 7/31/2018
1.6.19 482,790 4/6/2018
1.6.18 6,548 4/5/2018
1.6.17 801,366 9/19/2017
1.6.16 58,116 9/2/2017
1.6.15 102,055 8/8/2017
1.6.14 169,683 6/16/2017
1.6.13 29,860 6/7/2017
1.6.12 295,693 3/22/2017
1.6.11 18,979 3/14/2017
1.6.10 5,210 3/13/2017
1.6.9 24,191 3/2/2017
1.6.8 168,998 12/21/2016
1.6.7 63,300 11/25/2016
1.6.6 77,800 10/13/2016
1.6.5 69,577 9/24/2016
1.6.4 55,890 8/30/2016
1.6.3 21,961 8/19/2016
1.6.2 27,959 8/5/2016
1.6.1 23,142 7/27/2016
1.6.0 13,078 7/15/2016
1.5.9 22,113 7/11/2016
1.5.8 21,936 6/17/2016
1.5.7 14,598 5/30/2016
1.5.6 43,364 4/22/2016
1.5.5 13,776 4/14/2016
1.5.4 25,886 3/22/2016
1.5.3 171,983 11/6/2015
1.5.2 13,148 10/15/2015
1.5.1 1,838 10/14/2015
1.5.0 19,563 10/1/2015
1.4.7 1,295 10/1/2015
1.4.6 17,691 8/29/2015
1.4.5 21,177 7/24/2015
1.4.4 713 7/23/2015
1.4.3 25,193 5/27/2015
1.4.2 7,971 5/6/2015
1.4.1 14,143 4/14/2015
1.3.4 39,287 2/4/2015
1.3.3 2,221 1/28/2015
1.3.2 925 1/27/2015
1.3.1 6,057 1/13/2015
1.3.0 4,159 12/10/2014
1.2.2 4,937 11/24/2014
1.2.1 671 11/22/2014
1.2.0 3,281 11/17/2014
1.1.1 12,206 9/5/2014
1.1.0 1,620 9/3/2014
1.0.2 4,034 7/1/2014
1.0.1 582 6/30/2014
1.0.0 707 6/30/2014
0.9.1 1,383 6/12/2014
0.9.0 633 6/7/2014
0.8.3 579 5/23/2014
0.8.2 497 5/21/2014
0.8.1 511 5/17/2014
0.8.0 1,438 5/2/2014
0.7.5 545 4/10/2014
0.7.4 508 4/7/2014
0.7.3 458 4/4/2014
0.7.2 433 4/4/2014
0.7.1 457 4/1/2014
0.7.0 507 3/22/2014
0.6.2 522 1/28/2014
0.6.1 459 1/27/2014
0.6.0 528 1/27/2014
0.5.2 493 11/19/2013
0.5.1 523 11/12/2013
0.5.0 1,693 11/10/2013
Show less