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

Subscribe to monthly updates

Subscribe to receive monthly blog updates. Very low traffic, you are able to unsubscribe at any time.

Comments