Maintenance release with the new AutomaticRetryAttribute.ExceptOn
property to skip retries for specific exceptions, improved loopback address detection, fixed localization-related issues, fixed build failure with the build.bat
command on first restore and decreased pressure on Garbage Collector.
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.