Release Notes
Finally after 4 months of development and after 4 betas, Hangfire 1.5.0 released. Now you are able to customize your background processing pipeline even more, by using many types that were internal in previous versions. More responsive dashboard, IoC container scopes, support for remote MSMQ queues and other cool features are waiting for you!
Please see the Hangfire 1.5.0 post on the official blog for details.
Hangfire.Core
- Added –
IBackgroundProcess
interface that allows to implement custom background processes. - Added –
BackgroundProcessingServer
class for creating a server instance with completely custom background processes. - Added – Support for running multiple
BackgroundJobServer
instances in the same AppDomain without explicit server names. - Added –
JobActivatorScope
class to support custom IoC scopes/lifetimes. - Added – Allow to specify a custom queue for recurring jobs (by @maleet).
- Added – Allow to use CancellationToken type as a job method parameter.
- Added – It is now possible to query the storage in state applying filters.
- Added – Allow to pass custom filters to
BackgroundJobServer
via options. - Added – Option to hide the "Back to site" link (by @dradovic).
- Changed – Server components and background processes now use
Task
withTaskCreationOptions.LongRunning
. - Changed – ServerIds are now generated without ServerName, server names are deprecated.
- Changed – Arguments Renderer now supports TimeSpan and DateTime (by @yngndrw).
- Changed – Minor improvements for Dashboard navigation (by @pwelter34).
- Changed – Worker does not process a job when a transition to the Processing state failed (by @yngndrw).
- Changed –
BackgroundJobClientException
is thrown instead ofCreateJobFailedException
. - Changed – WorkerId is now auto-generated and based on a GUID.
- Changed – Use StackTraceFormatter package for marking-up stack traces (by @atifaziz).
- Changed – Updated Dashboard CSS to Twitter Bootstrap 3.3.5.
- Fixed – Prevent worker from fetching and processing a job on shutdown.
- Fixed –
TaskCanceledException
thrown from a job method leads to failed job as expected. - Fixed – Make
DelayedJobScheduler
resilient to empty background job ids. - Fixed – Logical error in SqlServerDistributedLockTimeout value check (by @Tom-Kelly).
- Fixed –
OverflowException
in Dashboard when job duration exceeds int.MaxValue (by @mavenius). - Fixed – "More details" button in Dashboard changes to "Less details" when collapsed (by @pascalberger).
Hangfire.SqlServer
- Added – Ability to specify the schema for SQL Server job storage (by @ryanmwright).
- Added –
TransactionTimeout
option for configuring theTransactionScope
timeout. - Added –
DashboardJobListLimit
option to prevent full table scans in Dashboard. - Changed –
SqlServerDistributedLock
class is now public. - Changed – Use
rowlock
table hint in job fetch query to prevent escalation. - Changed – Dramatically improved page load times in Dashboard.
- Changed – Instant re-queue for background jobs even after ungraceful shutdown.
- Changed –
JobQueue.Queue
andServer.Id
column length increased to 50 and 100 respectively (by @maleet).
Hangfire.SqlServer.Msmq
- Added – Support for remote MSMQ queues through DTC transactions.