This release introduced JSON serialization for background job arguments. All constraints caused by using TypeConverter
were eliminated - you can use arrays, collections and custom classes/structs (see Newtonsoft.Json documentation for the details). JSON serialization does not introduce a breaking change - your old jobs will be handled gracefully using corresponding TypeConverter
.
Major step was made to kick off dependency burden. To simplify the development and maintanance, Hangfire uses some external packages available on NuGet to perform serialization, logging, scheduling, etc. In earlier versions all of these packages installed together with the Hangfire.Core
assembly, but in this release half of them (Microsoft.Owin
, NCrontab
, CronExpressionDescriptor
) are being merged internally to the core assembly using ILMerge tool with /internalize
switch. This change allows Hangfire to support more project environments.
Please see linked issues to learn more about other changes in this release.
Release Notes
- Added – Serializing job arguments to JSON: arrays, collections and custom objects are fully supported now (#155)!
- Added – Add ability to automatically delete job when retry attempts exceeded (#182). Thanks to @sgrassie!
- Added – Job filters can access method's return value. You can also see it in the Dashboard (#161). Thanks to @gius!
- Added – Ability to plug in multiple dashboards with different storages (#168).
- Added – Method to query recurring jobs to the Storage API (#156).
- Changed –
NCrontab
,CronExpressionDescriptor
andMicrosoft.Owin
dependencies merged withHangfire.Core
and internalized (#194). - Fixed – NextExecution values are only updated upon execution (#158).
- Fixed – Force IE compatibility to edge for Intranet sites (#191). Thanks to @jeremycook!
- Fixed – Added missing event argument in Dashboard UI (#189). Thanks to @jeremycook!
- Fixed –
ArgumentNullException
is being thrown on job completion (#180). - Fixed – CPU bursts every 0th minute caused by the
RecurringJobScheduler
class (#176). - Fixed – Redis.FetchedJobsWatcher prohibits jobs from running longer than 15 minutes (#164).