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
-
Added –
RecurringJobManager.TriggerExecution
method that returns identifier of a created job. -
Added –
GetRecurringJobIds
extension method forJobStorageConnection
that returns only identifiers. -
Added –
DashboardMetric.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
andTimeOnly
in .NET 6.0 or other new types in CoreLib. -
Fixed – Don’t even try to catch unsafe exceptions like
OutOfMemoryException
orStackOverflowException
. - 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 inBackgroundExecution
.
Hangfire.SqlServer
- Fixed – Command batching is now fully working for the Microsoft.Data.SqlClient package (by @0xced).