Releases: HangfireIO/Hangfire
Releases · HangfireIO/Hangfire
1.8.22
Immutable
release. Only release title and notes can be modified.
Release Notes
Hangfire.Core
- Added –
IGlobalConfiguration.UseNoOpLogProvidermethod to disable logging. - Changed – Un-deprecate interval methods in the
Cronclass, add remarks in docs instead. - Changed – Bump internalized version of Cronos to 0.11.1.
- Changed – Bump internalized version of Microsoft.Owin to 4.2.3.
- Fixed – Serialization of arrays of nested types
SimpleAssemblyTypeSerializer. - Fixed – Remove wrong escaping characters in Portuguese translations on the "Servers" page.
- Fixed – Properly remove registered
IBackgroundProcessingServerinstances on OWIN app shutdown. - Fixed –
AspNetShutdownDetectorfor early ASP.NET shutdown detection is not working (regression from 1.7.30). - Project – Replace the
netcoreapp3.1target with thenet8.0one in tests.
Hangfire.SqlServer
- Fixed –
InvalidCastExceptionwhen creating a background job with Schema 5 (regression from 1.8.15). - Project – Replace the
netcoreapp3.1target with thenet8.0one in tests.
Hangfire.AspNetCore
- Added –
MapHangfireDashboardWithNoAuthorizationFiltersmethod, which does not include local-only filters. - Changed – Set 404 status code when
MapHangfireDashboardis used and no dispatcher is found. - Fixed –
InvalidOperationExceptionupon receiving a request for 'hangfire/bootstrap.min.css.map'.
1.8.21
Release Notes
Hangfire.Core
- Added –
FailedState.IncludeFileInfoto optionally show/hide line numbers in exceptions in Failed state. - Changed – Include line numbers for exceptions by default when available.
- Fixed – Portuguese (Brazil) translations in Strings.pt-BR.resx (by @pedro-cons).
- Fixed – Static
BackgroundJobclass always acquires the most currentJobStorage.Currentinstance. - Fixed – Static
RecurringJobclass always acquires the most currentJobStorage.Currentinstance.
Hangfire.SqlServer
- Added –
SqlServerStorageOptions.DisableTransactionScopeoption for .NET Framework targets. - Project – Port Monitoring API tests from the Hangfire.InMemory storage for better coverage.
- Project – Run tests for different targets in parallel with different databases.
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.ServerPossiblyAbortedThresholdto 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
AsyncLocalvalues from synchronous background job methods. - Fixed – Don't throw an exception when passing the
Job.Argsproperty to theJobclass' constructor. - Project – Make the lock file usable for both .NET 8.0 and .NET 9.0 builds.
- Project – Make code generation for
cshtmlfiles working on newer platforms.
Hangfire.AspNetCore
- Fixed – Swallow possible
ObjectDisposedExceptionin theStopAsyncmethod. - Fixed – Avoid
NullReferenceExceptionwhenLocalIpAddressorRemoteIpAddressis null.
1.8.17
1.8.16
Release Notes
Hangfire.Core
- Changed – Include fewer stack frames in exceptions come from
IServerFilterimplementations. - Changed – Don't include file information in the
ExceptionDetailsproperty of a FailedState instance. - Changed – Switch back to
CancellationEventusage instead ofCancellationToken.WaitHandle. - Fixed – Don't commit external transaction in the
BackgroundJobStateChangerimplementation. - Fixed – Use safe default serializer settings for Newtonsoft.Json 12.X and below.
- Project – Fix builds for the
net451platform when using .NET 9.0. - Project – Significantly reduce execution time of unit tests in the
RecurringJobSchedulerFactsclass. - Project – Bump
Microsoft.CodeAnalysis.NetAnalyzerspackage to version 9.0.0.
Hangfire.SqlServer
- Changed – Use vanilla ADO.NET when fetching a job in the
SqlServerJobQueueimplementation. - Changed – Decrease the
LockTimeouttime when calling thesp_getapplockprocedure 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.0platform. - Project – Reduce execution time of integration tests.
- Project – Disable
PoolBlockingPeriodsetting on AppVeyor to handle transient test failures.
1.8.15
Release Notes
Hangfire.Core
- Added – New
AutomaticRetryAttribute.ExceptOnproperty to skip retries for specific exceptions. - Changed – Refactor filters pipeline to use less LINQ magic and fewer allocations.
- Changed – Use
GetCultureInfoinstead of creating an instance in theCaptureCultureAttributefilter. - 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.batcommand. - 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
stringallocations. - Changed – Use static callbacks almost anywhere to avoid unnecessary delegate allocations.
- Changed – Use
QuerySingle* orReadSingle* where possible to avoid allocating lists. - Changed – Unify
DbCommandandDbParametercreation logic to improve code consistency.
1.8.13 & 1.8.14
Release Notes
Hangfire.Core
- Changed – Partial cache for serialization and deserialization in
InvocationDatato 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
IProfilerto be less allocatey for diagnostic purposes that almost never run. - Changed – Prefer using
CancellationToken.WaitHandleagain, since early .NET Core days are gone. - Changed – Fewer allocations when working with
IStateHandlercollections 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
KeyNotFoundExceptionwhen recurring job is malformed. - Fixed – Proper relative path calculation in
UrlHelper.Tofor 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 –
AddOrUpdatetriggers 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).