Hangfire.Core 1.8.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 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/

Showing the top 20 packages that depend on Hangfire.Core.

Packages Downloads
AspNetCore.HealthChecks.Hangfire
HealthChecks.Hangfire is the health check package for Hangfire.
28
Hangfire.NetCore
.NET Core's Worker Service host support for Hangfire, a background job framework for .NET applications.
22
Hangfire.PostgreSql
PostgreSql storage implementation for Hangfire (background job system for ASP.NET and aspnet core applications).
18
IdentityStream.Hangfire.Console
Job console for Hangfire
14
Hangfire.Redis.StackExchange
Hangfire Redis Storage Based on Redis.StackExchange See http://hangfire.io/ for some more info on the main project and https://github.com/marcoCasamento/Hangfire.Redis.StackExchange for info on this
11
Hangfire.PostgreSql
PostgreSql storage implementation for Hangfire (background job system for ASP.NET and aspnet core applications).
6
Hangfire.AspNetCore
ASP.NET Core support for Hangfire (background job system for ASP.NET applications).
6
Hangfire.NetCore
.NET Core's Worker Service host support for Hangfire (background job system for ASP.NET applications).
6
Hangfire.PostgreSql
PostgreSql storage implementation for Hangfire (background job system for ASP.NET applications).
5

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.9 • Changed – Use Environment.MachineName as a server name if other environment vars aren't available. • Changed – Bump the Cronos package version from 0.7.1 to 0.8.1. • Changed – Improve portuguese translations (by @filipe-silva). • Fixed – Possible NullReferenceException on the Deleted Jobs page (regression from 1.8.7). • Project – Enable full source link support with embedded symbols and repository-based sources. • Project – Enable repeatable package restore using a lock file. • Project – Run unit tests against the net6.0 platform. • Project – Modernise the build system and clean up the build scripts.

1.8.7 • Added – Allow using macro expressions like @hourly for recurring jobs (by @MuhamedAbdalla). • Added – Show storage time in page footer when supported by storage implementation. • Added – Show duration and latency columns separately on the Succeeded Jobs page when supported. • Added – Show the exception column on the Deleted Jobs page when available and supported by storage. • Changed – Reduce package size by stripping unnecessary locales in Moment.js. • Changed – Bump Microsoft.Owin package to version 4.2.2. • Changed – Log a warning message when a server listens to unsupported queue names. • Changed – Use storage time, if available, to show delay warnings in the Dashboard UI. • Fixed – Proper rendering of generic arguments on the Job Details page (by @olivermue). • Fixed – Language inconsistency in the Dashboard UI related to date/time description. • Fixed – Big stack traces take too long time to be formatted. • Fixed – Don't throw NullReferenceException from the Scheduled Jobs page when there's a job with missing data. • Fixed – Don't throw NullReferenceException from the Processing Jobs page when there's a job with missing data. • Fixed – CSS for Enqueued and Deleted state cards in dark theme. • Fixed – Log errors instead of throwing an exception when a particular table can't be cleaned. • Fixed – Avoid logging fatal exceptions when stopping a faulting background process. • Fixed – Don't display checkboxes in the Dashboard UI when job details can not be fetched. • Fixed – Scrollbars in WebKit-based browsers are now dark in dark mode. • Project – Disable tests for netcoreapp1.0 and netcoreapp2.1 targets since they aren't supported in AppVeyor. • Project – Add a net6.0 target for unit tests instead of the removed ones. • Project – Modernise projects and build environments to use the newest features.

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.

1.8.5 • 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.

1.8.4 • Added – Pass server id from a worker to the PerformContext.ServerId property available in filters. • Fixed – Send heartbeats until full background processing server shutdown.

1.8.3 • 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 • Changed – Disable transactional job creation feature appeared in 1.8.0. • Fixed – "Can not start continuation XXX" error when storage supports transactional job creation.

1.8.1 • 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.

1.8.0 • 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.

.NET Framework 4.5.1

.NET Framework 4.6

.NET Standard 1.3

.NET Standard 2.0

Version Downloads Last updated
1.8.21 2 09/18/2025
1.8.20 4 06/03/2025
1.8.19 4 06/03/2025
1.8.18 5 02/26/2025
1.8.17 5 02/26/2025
1.8.16 5 02/26/2025
1.8.15 5 02/26/2025
1.8.14 20 09/27/2024
1.8.12 5 02/26/2025
1.8.11 4 02/26/2025
1.8.10 5 02/26/2025
1.8.9 4 02/26/2025
1.8.7 6 02/26/2025
1.8.6 15 09/20/2024
1.8.5 17 09/20/2024
1.8.4 4 02/26/2025
1.8.3 4 02/26/2025
1.8.2 5 02/26/2025
1.8.1 4 02/26/2025
1.8.0 10 09/25/2024
1.7.37 5 02/26/2025
1.7.36 5 02/26/2025
1.7.35 5 02/26/2025
1.7.34 5 02/26/2025
1.7.33 5 02/26/2025
1.7.32 5 02/26/2025
1.7.31 5 02/26/2025
1.7.30 5 02/26/2025
1.7.29 5 02/26/2025
1.7.28 5 02/26/2025
1.7.27 5 02/26/2025
1.7.26 5 02/26/2025
1.7.25 5 02/26/2025
1.7.24 5 02/26/2025
1.7.23 6 02/26/2025
1.7.22 5 02/26/2025
1.7.21 5 02/26/2025
1.7.20 5 02/26/2025
1.7.19 5 02/26/2025
1.7.18 5 02/26/2025
1.7.17 5 02/26/2025
1.7.16 5 02/26/2025
1.7.15 5 02/26/2025
1.7.14 5 02/26/2025
1.7.13 5 02/26/2025
1.7.12 5 02/26/2025
1.7.11 4 02/26/2025
1.7.10 5 02/26/2025
1.7.9 4 02/26/2025
1.7.8 4 02/26/2025
1.7.7 4 02/26/2025
1.7.6 4 02/26/2025
1.7.5 4 02/26/2025
1.7.4 4 02/26/2025
1.7.3 4 02/26/2025
1.7.2 4 02/26/2025
1.7.1 4 02/26/2025
1.7.0 4 02/26/2025
1.6.30 5 02/26/2025
1.6.29 5 02/26/2025
1.6.28 5 02/26/2025
1.6.27 5 02/26/2025
1.6.26 5 02/26/2025
1.6.25 5 02/26/2025
1.6.24 5 02/26/2025
1.6.23 5 02/26/2025
1.6.22 5 02/26/2025
1.6.21 5 02/26/2025
1.6.20 5 02/26/2025
1.6.19 5 02/26/2025
1.6.18 5 02/26/2025
1.6.17 5 02/26/2025
1.6.16 5 02/26/2025
1.6.15 5 02/26/2025
1.6.14 5 02/26/2025
1.6.13 5 02/26/2025
1.6.12 5 02/26/2025
1.6.11 4 02/26/2025
1.6.10 5 02/26/2025
1.6.9 4 02/26/2025
1.6.8 4 02/26/2025
1.6.7 4 02/26/2025
1.6.6 4 02/26/2025
1.6.5 4 02/26/2025
1.6.4 4 02/26/2025
1.6.3 4 02/26/2025
1.6.2 4 02/26/2025
1.6.1 4 02/26/2025
1.6.0 3 02/26/2025
1.5.9 4 02/26/2025
1.5.8 4 02/26/2025
1.5.7 4 02/26/2025
1.5.6 4 02/26/2025
1.5.5 4 02/26/2025
1.5.4 4 02/26/2025
1.5.3 4 02/26/2025
1.5.2 4 02/26/2025
1.5.1 4 02/26/2025
1.5.0 4 02/26/2025
1.4.7 4 02/26/2025
1.4.6 4 02/26/2025
1.4.5 4 02/26/2025
1.4.4 4 02/26/2025
1.4.3 4 02/26/2025
1.4.2 4 02/26/2025
1.4.1 4 02/26/2025
1.3.4 4 02/26/2025
1.3.3 4 02/26/2025
1.3.2 4 02/26/2025
1.3.1 4 02/26/2025
1.3.0 4 02/26/2025
1.2.2 4 02/26/2025
1.2.1 4 02/26/2025
1.2.0 4 02/26/2025
1.1.1 4 02/26/2025
1.1.0 4 02/26/2025
1.0.2 4 02/26/2025
1.0.1 4 02/26/2025
1.0.0 4 02/26/2025
0.9.1 4 02/26/2025
0.9.0 4 02/26/2025
0.8.3 4 02/26/2025
0.8.2 4 02/26/2025
0.8.1 5 02/26/2025
0.8.0 4 02/26/2025
0.7.5 4 02/26/2025
0.7.4 4 02/26/2025
0.7.3 4 02/26/2025
0.7.1 4 02/26/2025
0.7.0 4 02/26/2025
0.6.2 4 02/26/2025
0.6.1 4 02/26/2025
0.5.2 4 02/26/2025
0.5.1 4 02/26/2025
0.5.0 4 02/26/2025