Releases: HangfireIO/Hangfire
Releases · HangfireIO/Hangfire
1.8.20
1.8.19
Release Notes
Hangfire.Core
- Changed – Update Bootstrap to the custom version of 3.4.2 to avoid false alerts on unused features.
- Fixed – Typos in Portuguese translation (by @VianaArthur).
- Fixed – Unnecessary recurring job update transaction when nothing is changed after an error.
Hangfire.SqlServer
- Fixed – Sliding invisibility timeout isn't prolonged in lightweight servers, causing jobs to be restarted.
1.8.18
Release Notes
Hangfire.Core
- Added –
DashboardOptions.ServerPossiblyAbortedThreshold
to configure a custom threshold for "possibly aborted" warnings. - Fixed – Expired jobs are still shown on the "Retries" page in some cases.
- Fixed – Issues with
CultureInfo
-related differences after upgrading to 1.8.15–1.8.17. - Fixed – Don't leak
AsyncLocal
values from synchronous background job methods. - Fixed – Don't throw an exception when passing the
Job.Args
property to theJob
class' constructor. - Project – Make the lock file usable for both .NET 8.0 and .NET 9.0 builds.
- Project – Make code generation for
cshtml
files working on newer platforms.
Hangfire.AspNetCore
- Fixed – Swallow possible
ObjectDisposedException
in theStopAsync
method. - Fixed – Avoid
NullReferenceException
whenLocalIpAddress
orRemoteIpAddress
is null.
1.8.17
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.