This is a maintenance release that adds more protection to its internal components to prevent and diagnose high CPU consumption when something goes wrong with wait implementation. Uncatchable exceptions like OutOfMemoryException and StackOverflowException are not not handled by Hangfire to avoid leaving the process in a inconsistent state. Finally command batching now works with Microsoft.Data.SqlClient package. Also some very minor features were added, please see the release notes for details.

Thanks to @twinmind, @0xced and @Westat-Transportation for their help with this release!

Hangfire.Core

  • AddedRecurringJobManager.TriggerExecution method that returns identifier of a created job.
  • AddedGetRecurringJobIds extension method for JobStorageConnection that returns only identifiers.
  • AddedDashboardMetric.Url property to make it possible for metrics on the Overview page to be clickable (by @twinmind).
  • Changed – Bump Moment.js version to 2.29.3 in Dashboard UI (by @Westat-Transportation).
  • Fixed – Deserialization issues with DateOnly and TimeOnly in .NET 6.0 or other new types in CoreLib.
  • Fixed – Don’t even try to catch unsafe exceptions like OutOfMemoryException or StackOverflowException.
  • Fixed – Add non-breaking space between Server Id and Status glyph on the Servers page.
  • Fixed – Problems with internal wait implementation shouldn’t cause high CPU issues now, added protection and logging.
  • Fixed – Wait can’t be performed now on a signaled ManualResetEvent instance in BackgroundExecution.

Hangfire.SqlServer

  • Fixed – Command batching is now fully working for the Microsoft.Data.SqlClient package (by @0xced).

Subscribe to monthly updates

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

Comments