Releases: HangfireIO/Hangfire
Releases · HangfireIO/Hangfire
1.8.16
Release Notes
Hangfire.Core
- Changed – Include fewer stack frames in exceptions come from
IServerFilter
implementations. - Changed – Don't include file information in the
ExceptionDetails
property of a FailedState instance. - Changed – Switch back to
CancellationEvent
usage instead ofCancellationToken.WaitHandle
. - Fixed – Don't commit external transaction in the
BackgroundJobStateChanger
implementation. - Fixed – Use safe default serializer settings for Newtonsoft.Json 12.X and below.
- Project – Fix builds for the
net451
platform when using .NET 9.0. - Project – Significantly reduce execution time of unit tests in the
RecurringJobSchedulerFacts
class. - Project – Bump
Microsoft.CodeAnalysis.NetAnalyzers
package to version 9.0.0.
Hangfire.SqlServer
- Changed – Use vanilla ADO.NET when fetching a job in the
SqlServerJobQueue
implementation. - Changed – Decrease the
LockTimeout
time when calling thesp_getapplock
procedure to 1 second for less blocking. - Fixed – SqlException: Must declare the scalar variable "key" in delayed and recurring job schedulers.
- Project – Disable parallel tests execution when building under .NET 9.0.
- Project – Run tests over the latest Microsoft.Data.SqlClient package and the
net6.0
platform. - Project – Reduce execution time of integration tests.
- Project – Disable
PoolBlockingPeriod
setting on AppVeyor to handle transient test failures.
1.8.15
Release Notes
Hangfire.Core
- Added – New
AutomaticRetryAttribute.ExceptOn
property to skip retries for specific exceptions. - Changed – Refactor filters pipeline to use less LINQ magic and fewer allocations.
- Changed – Use
GetCultureInfo
instead of creating an instance in theCaptureCultureAttribute
filter. - Changed – Cache some immutable data to avoid extra allocations.
- Fixed – Improve loopback address detection (by @meziantou).
- Fixed – Reformulate misleading error messages regarding retry timings (by @RGFuaWVs).
- Fixed – Problem with missing localizations in the previous version.
- Fixed – Don't hide exception details on Failed Jobs page when the exception message is empty.
- Fixed – Problems with the first restore when using the
build.bat
command. - Fixed – Better display of canceled recurring jobs in dashboard.
- Fixed – Less overall allocations with using static delegates and struct-based iterators.
- Fixed – Improve precision of some diagnostic messages in the wait protection logic.
- Fixed – Make all private and internal classes sealed to improve code consistency.
- Fixed – Less overall pressure on garbage collector.
Hangfire.SqlServer
- Changed – Use query template caching based on schema name to avoid excessive
string
allocations. - Changed – Use static callbacks almost anywhere to avoid unnecessary delegate allocations.
- Changed – Use
QuerySingle
* orReadSingle
* where possible to avoid allocating lists. - Changed – Unify
DbCommand
andDbParameter
creation logic to improve code consistency.
1.8.13 & 1.8.14
Release Notes
Hangfire.Core
- Changed – Partial cache for serialization and deserialization in
InvocationData
to produce less strings. - Changed – Add caching for default type serializer and resolver.
- Changed – Don't let
JobFilter
-related logic to show up in profilers. - Changed – Modify
IProfiler
to be less allocatey for diagnostic purposes that almost never run. - Changed – Prefer using
CancellationToken.WaitHandle
again, since early .NET Core days are gone. - Changed – Fewer allocations when working with
IStateHandler
collections in a state machine. - Fixed – Redirect the "System.Private.Xml.Linq" assembly to the "System.Xml.Linq" one for better interoperability.
- Fixed – Don't throw
KeyNotFoundException
when recurring job is malformed. - Fixed – Proper relative path calculation in
UrlHelper.To
for OWIN-based Dashboard UI (by @LordJZ). - Fixed – Typo in the Turkish localization file (by @ismkdc).
- Project – Switch to a modern PowerShell 7+ to speed up SignPath installation on AppVeyor.
Hangfire.SqlServer
- Changed – Limit polling queries when queues are empty with a semaphore for all configurations.
- Changed – Use per-queue signaling for same-process workers, instead of having a global signal.
- Fixed – Don't silently truncate queue names, throw an exception instead.
- Project – Decrease delays in SQL Server-related tests to complete them faster.
1.7.37
Release Notes
- Fixed – Recurring job is scheduled to the past after recovering from error with
AddOrUpdate
(backported). - Fixed –
AddOrUpdate
triggers execution of a recurring job, even if its next execution is in the future (backported). - Fixed – Send heartbeats until full background processing server shutdown (backported).
1.8.12
Release Notes
Hangfire.Core
- Added –
MaxDegreeOfParallelismForSchedulers
experimental server option if supported by storage. - Added – Experimental support for parallel execution of the delayed job scheduler.
- Added – Experimental support for parallel execution of the recurring job scheduler.
- Fixed – Recurring job is scheduled to the past after recovering from error with
AddOrUpdate
. - Fixed –
AddOrUpdate
triggers execution of a recurring job, even if its next execution is in the future. - Fixed – Two very minor errors in the Swedish localization file (by @Uglack).
Hangfire.SqlServer
- Fixed – Populate
InvocationData
andLoadException
properties inJobDetails
method results.
1.8.11
1.8.10
Release Notes
Hangfire.Core
- Changed – Added Norwegian translations for new keys (by @khellang).
- Changed – Update Brazilian Portuguese translation (by @HugoAlames).
- Changed – Bump Cronos dependency to version 0.8.3.
Hangfire.AspNetCore
- Fixed – Don't check
HasStarted
inResponse.WriteAsync
to avoid breaking dispatchers.
Hangfire.SqlServer
- Changed – Bump Dapper for the
netstandard2.0
platform to version 2.1.28. - Changed – Bump Dapper for
net451
andnetstandard1.3
platforms to version 1.60.6.
Hangfire.Core, Hangfire.NetCore, Hangfire.AspNetCore, Hangfire.SqlServer, Hangfire.SqlServer.Msmq
- Project – Enable NuGet package and DLL signing with a company certificate.
- Project – Require NuGet package signature validation on restore for dependencies.
- Project – Add
HangfireIO
as a package owner.
1.8.9
Release Notes
Please note that version 1.8.8 was unlisted on NuGet because of broken package references.
Hangfire.Core
- 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.
Hangfire.SqlServer
- 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.
Hangfire.NetCore
- Project – Enable full source link support with embedded symbols and repository-based sources.
- Project – Enable repeatable package restore using a lock file.
Hangfire.AspNetCore
- Fixed – Don't attempt to write response headers when response has already started (by @maliming).
- Project – Enable full source link support with embedded symbols and repository-based sources.
- Project – Enable repeatable package restore using a lock file.
1.8.7
Release Notes
Hangfire.Core
- 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 (by @Muhamedabdalla).
- 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
andnetcoreapp2.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.
Hangfire.SqlServer
- Changed – Avoid throwing an exception when a connection string has duplicate property names.
- Project – Disable tests for
netcoreapp1.0
andnetcoreapp2.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
Release Notes
Hangfire.Core
- 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 ofCurrentUICulture
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.
Hangfire.SqlServer
- Fixed – Exception in Dashboard UI when schema version is not present in a database.
- Fixed –
DbCommand
resource leak when releasing a lock detected by static analysis. - Fixed – Don't add SQL Server-related metrics multiple times in Dashboard UI.
Hangfire.NetCore
- Fixed – Include assembly information to the Hangfire.NetCore assembly.