Skip to content

Releases: HangfireIO/Hangfire

1.8.16

27 Nov 04:02
v1.8.16
0e9ea33
Compare
Choose a tag to compare

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 of CancellationToken.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 the sp_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

23 Oct 06:18
v1.8.15
b841265
Compare
Choose a tag to compare

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 the CaptureCultureAttribute 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* or ReadSingle* where possible to avoid allocating lists.
  • Changed – Unify DbCommand and DbParameter creation logic to improve code consistency.

1.8.13 & 1.8.14

11 Jun 06:53
v1.8.14
51647c2
Compare
Choose a tag to compare

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

08 Apr 06:44
v1.7.37
ffba2e8
Compare
Choose a tag to compare

Release Notes

  • Fixed – Recurring job is scheduled to the past after recovering from error with AddOrUpdate (backported).
  • FixedAddOrUpdate 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

03 Apr 11:34
v1.8.12
ead95d1
Compare
Choose a tag to compare

Release Notes

Hangfire.Core

  • AddedMaxDegreeOfParallelismForSchedulers 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.
  • FixedAddOrUpdate 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 and LoadException properties in JobDetails method results.

1.8.11

23 Feb 12:41
v1.8.11
11b9b2d
Compare
Choose a tag to compare

Release Notes

Hangfire.Core

  • Changed – Add icons and fix metadata for NuGet packages.
  • Changed – Bump ILRepack to version 2.0.27 to avoid problems with internalizing.
  • Fixed – "Type exists in both Cronos and Hangfire.Core" exception.

1.8.10

12 Feb 10:00
v1.8.10
0036237
Compare
Choose a tag to compare

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 in Response.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 and netstandard1.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

24 Jan 05:26
v1.8.9
60d6b3c
Compare
Choose a tag to compare

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

29 Dec 07:33
v1.8.7
72bc1cc
Compare
Choose a tag to compare

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

Hangfire.SqlServer

  • Changed – Avoid throwing an exception when a connection string has duplicate property names.
  • 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

18 Oct 10:28
v1.8.6
98193fa
Compare
Choose a tag to compare

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

Hangfire.SqlServer

  • Fixed – Exception in Dashboard UI when schema version is not present in a database.
  • FixedDbCommand 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.