This is yet another maintenance release with added support for dashes in queue names (thanks, @caioproiete), better recurring job error messages in Dashboard UI and some other useful fixes.Continue Reading →
This is yet another maintenance release with added support for dashes in queue names (thanks, @caioproiete), better recurring job error messages in Dashboard UI and some other useful fixes.Continue Reading →
This is a maintenance release that provides better handling of recurring job scheduling errors, clearly shows when there are problems with fetching statistics in Dashboard UI (thanks, @prochnowc!), doesn’t infinitely caches
IRecurringJobManager instances that throw JobStorage.Current is null exceptions, and also adds the
AddHangfireServer overload with options-based callback.
This release fixes occasional timeout exceptions that occur when attaching nested batch continuations for nested batches that are currently processed. The exception occurred due to a deadlock caused by different batch lock acquisition order when nested batches are involved.Continue Reading →
This is a maintenance release that contains important fixes for the Hangfire.SqlServer package to avoid deadlocks if you have long-running jobs, improvements for background process dispatch loop’s implementation, and also an interesting experimental feature that can transparently make background job creation resilient to transient exceptions by using idempotent retries.Continue Reading →
This is a maintenance release that plays better with recently released Hangfire 1.7, so you don’t get extra framework packages when targeting .NET Core or .NET Standard 2.0. Also, continuation filters now don’t throw an exception again and again, when continuation has already expired.Continue Reading →
This version contains security fixes to prevent possible XSS attacks as described in #1441. They don’t relate to user data submitted to Hangfire directly via method arguments, but it’s recommended to upgrade anyway. If you are using Hangfire 1.6, please upgrade to version 1.6.26 instead.Continue Reading →
This patch release contains stability improvements for recurring jobs, better handling of custom time zone resolvers in Dashboard UI and other minor fixes. If you are upgrading from 1.6.X, please see Upgrading to Hangfire 1.7 article to learn the details.Continue Reading →
This version brings support for Mono on Linux and macOS platforms without the need to reference additional packages. On Windows, both .NET Framework and .NET Standard 2.0 now use the same methods for polling a socket for new data, to make the behavior consistent across platforms.Continue Reading →
This is a patch release that adds some nice features for Dashboard UI, knows how to deal with recurring jobs with invalid Cron expressions, and contains some minor improvements for SQL Server storage. Also,
Hangfire.NetCore package was added to support new .NET Core Worker Service applications without referencing any ASP.NET Core packages.
Hangfire 1.7.0 is finally released with the whole bunch of new features and improvements for background processing, background and recurring jobs, SQL Server storage, .NET Core integration and interoperability between .NET platforms to provide a strong foundation for future features and extensions.Continue Reading →
This is a release candidate for the upcoming version 1.7.0 with a lot of new features and improvements for almost all the aspects of background job processing. Below you’ll find a short list of them as well as upgrade details, and more information will be published later. Please note this is a pre-release, and it’s not suitable for critical environments.Continue Reading →
This version fixes some issues and acts as an optional trampoline to the upcoming 1.7.0 release to simplify the rolling upgrades. So your current servers will work side-by-side with the newer ones even if you are using SQL Server as a job storage and applied the new migration. There will be more information on upgrading, but this version is nice-to-have (but not required) anyway.Continue Reading →
This is an important release that makes timeout detection much more robust. First of all, Redis server itself now acts as a single time authority for performing timeout checks for both jobs and servers rather than UTC time of a current Hangfire Server. So you don’t need to use synchronized clocks to prevent false positives for timeout checks.Continue Reading →
This version finally fixes interoperability issues that arise, because primitive built-in types like
String reside in assemblies with different name in .NET Core (
System.Private.CoreLib.dll) and .NET Framework (
mscorlib.dll). This led to
JobLoadException in .NET Framework-based applications, when they tried to perform background jobs created by a .NET Core-based one. The new version solves this problem by re-writing assembly name when resolving a type for a job and its parameters.
This release fixes unexpected behaviors when we are cancelling a batch that has continuations for its inner items as in the following sample. When those continuations have continuations themselves, or when we attaching a job with continuation to a cancelled batch, our leaf-level continuations stuck in the awaiting or non-initialized state until queued manually.Continue Reading →
This are late release notes for a maintenance release with minor fixes. Please see the list of fixed issues below and upgrade if necessary.Continue Reading →
The goal of this release is to resolve the timeout issues that appear in .NET Core 2.X applications. Such behavior was caused by networking implementation of SE.Redis, which posted Redis response processing logic to thread pool’s worker threads, instead of completion ports or custom threads, due to the lack of the corresponding API in
This release contains fixes for security issues related to dashboard, so it is highly recommended to upgrade. Cross-Site Request Forgery protection was added by using existing libraries, but methods are different across application frameworks:Continue Reading →
This release fixes a regression appeared in 1.6.18 as well as contain some improvements for the Hangfire.SqlServer package.Continue Reading →
This release contains a lot of fixes, but the most important ones are related to .NET Core and ASP.NET Core frameworks. Filters based on attributes are now working fine there, and
DisplayName decoration will finally bring the human-ready name for your jobs. Other fixes are mostly related to dashboard.
This release solves connectivity issues with Redis Cluster 4.X, appeared as a result of breaking changes introduced in Redis 4.0.Continue Reading →
This release contains important improvements when SQL Server is used as a job storage. Distributed locks are much more robust now even when there are significant connectivity issues (like those sometimes happen in Azure or other cloud environments) and require much fewer connections to SQL Server. Another improvement is related to a new option that allows transactions to be committed with fewer round-trips.Continue Reading →
This is yet another maintenance release that fixes a bunch of non-critical bugs in
This release brings full support for continuations in batches, including the nested ones. Now you can create continuations within a batch even for jobs or batches in nested batches. Consider the following sample:Continue Reading →
This release contains important fixes for the Hangfire.SqlServer package, which is actively using the
sp_getapplock stored procedure to synchronize work between different servers. I’ve realized that locks shouldn’t be awaited on SQL Server’s side, because this may lead to SQL Server’s connection pool starvation, because each blocked request will block a single worker thread.
This versions adds possibility to use non-transactional message fetching algorithm when using Hangfire.SqlServer package. This is especially helpful, if you have a lot of long-running background jobs, since they may prevent you from taking transaction log backups, leading to the Transaction log is full due to ‘ACTIVE_TRANSACTION’ error.Continue Reading →
This release contains a bunch of fixes for core and integration packages. The most important updates are fix for SQL connection leaks when we failed to acquire a distributed lock, and wrong queue selection, when continuation is created after antecedent job is finished. So upgrade is recommended.Continue Reading →
This is a minor update that fixes VS Code debugger crash on OS X, and don’t report
fatal. You can update only if these issues annoys you.
Another bug related to forever incomplete batches has been fixed. This bug existed for a long time, so I’d recommend anyone to upgrade.Continue Reading →
This release contains the most amazing update to the batches feature. Now you can create nested batches, attach jobs or batches to an existing batch, regardless of its current state, and lazily cancel running batches. Also, you can create job continuation for batch, and batch continuation for job. These feature allows you to build powerful workflows on top of Hangfire with ease.Continue Reading →
Redis Cluster is finally supported. Also improved connection resilience using custom connection loop, upgraded StackExchange.Redis to the latest version and fixed some nasty bugs. So I’d recommend to upgrade, especially if you are using Redis in cloud environments.Continue Reading →
There was a lack of distributed lock during the batch creation phase. If an antecedent batch succeeded just after adding a batch continuation (continuations:finished set), but before the continuation was created, antecedent batch was silently ignoring the fact that continuation does not exist yet. I’ve added a required distributed lock, and taught a state filter related to continuations to throw an exception, when continuation doesn’t exist.Continue Reading →
Finally Redis Cluster is officially supported by Hangfire.Pro.Redis package, and correctly handles the corner cases of Redis’ async replication. I was able to implement it without requiring RedLock algorithm, regular
WATCH commands are used to ensure distributed lock correctness.
This is a correcting release that mainly fixes regression related to dashboard, appeared in the previous version.Continue Reading →
A recommended upgrade for all users to improve the reliability and accuracy of the service bus integration:Continue Reading →
This release brings better exception handling policy for state changing pipeline. Previously, non-transient exception in a state filter could cause a worker to perform retries for affected background job infinitely. And a large number of such background jobs could stall the processing.Continue Reading →
This release fixes a problem with CSS and JS files in dashboard appeared in 1.6.10, as well as corrects the authorization behavior, when the
User property is
This is a maintenance release that contains fixes for job continuations and some dashboard issues related to Content Security Policy and recurring jobs page. It’s highly recommended to upgrade to prevent problems with continuations. They are rare, but lead to significant headache.Continue Reading →
I’m very excited to write about all of these changes, because they take batches and Hangfire itself to a whole new level by unlocking a lot of usage scenarios. This pre-release adds support for nested batches, modifications of existing batches, batch continuations for jobs and vice versa, batch cancellation as well as support for .NET Standard and configurable batch expiration time.Continue Reading →
This is a small correcting release that make it possible to have a workaround for
TimeoutException exceptions when using SQL Server with huge arguments or batches. The
SqlServerOptions.CommandTimeout option was added to allow to override the default timeout of 30 seconds.
This release contains a bunch of fixes for batches, and is recommended for anyone who use them. Batches now always created in a correct state (Started, Completed or Succeeded), depending of state of its jobs. This is the most important change that fixes weird problems with batches that hanging forever.Continue Reading →
This release contains a bunch of minor fixes, mostly for Dashboard UI.Continue Reading →
This is a correcting release that fixes
Server.StartedAt field reset problem during each server heartbeat, which lead to confusion that servers are constantly restarted, when watching the Servers page. It also adds missing
GetValueFromHash method required by popular Hangfire.Console extension.
This is a maintenance release that add support for Hangfire.Core 1.4.0 for conservative users who are planning to switch to use a more stable StackExchange.Redis client package, but don’t want to upgrade Hangfire.Core. Originally this package supported only ≥ 1.5.0 versions.Continue Reading →
This is a correcting release that brings fixes to fully support generic methods, whose generic arguments are defined in their parameters, including
T. A lot of issues with Dashboard UI that cause exceptions and other errors, like uncontrolled growth of event listeners on resize, were also fixed. Please see the full delails below.
This is a maintenance release that fixes
ArgumentNullException that appears in Dashboard UI and during a call to the
RedisMonitoringApi.Servers method, when
BackgroundJobServer instance was resurrected. Resurrection happens when a server was removed from active servers list due to network problems, but then appeared again.
This release adds an option that explicitly allows using multiple endpoints in the connection string, but it’s not recommended. Use it at your own risk! Here’s a small explanation:Continue Reading →
This is a correcting release that fixes a regression, when using generic methods of a scoped variable in expression for background jobs, as well as some minor optimizations for SQL Server. It also adds CLS compliance for basic packages, since public API is already compliant. Boring release, nothing interesting here.Continue Reading →
This release brings us a single package that targets both .NET Framework and .NET Core, so there’s no need to use separate packages now. It also fixes a rare issue, when a timed out background job stays in the
processing set indefinitely, causing dashboard exceptions.
This correcting release contains a lot of stability improvements for Hangfire.SqlServer, especially for SQL Azure Database environments. Processing is now more predictable even in Basic pricing tier, there is a special harness application that’s running 24/7 to ensure everything is fine. Some problems related to I18N, authorisation and continuations were also fixed.Continue Reading →
This release fixes a problem that caused
SqlConnection instance to leak when nested distributed locks are acquired for the same resource. If you are using batches, or continuations, and SQL Server as a storage, it is highly recommended to upgrade to prevent connection pool starvation and timeout exceptions.
This is a maintenance release that contains fixes for several bugs. It is highly recommended to upgrade to this version, if you are using
Hangfire.SqlServer. Thanks to all folks who helped with reporting and investigating these issues!
Brand new version of Hangfire.Pro.Redis is finally available. It is now based on feature-rich StackExchange.Redis library, allowing us to bring Hangfire to more environments that use Redis storage in the near future. This version comes with some new features, including SSL support and highly reduced connection usage.Continue Reading →
This version fixes different problems, that caused batches and batch continuations appear with no background jobs under rare circumstances. Also, background jobs now have the same expiration time with the batch itself. It is highly recommended to upgrade, if you are using batches.Continue Reading →
This correcting release contains important fixes for SQL Server and MSMQ integrations, as well as some cosmetic changes to the Dashboard UI. Major blocking problem was resolved, when using Hangfire with SQL Server, that may cause a lot of blocking records in the
State table, preventing background processing from working flawlessly, when expired records are removed from a database – Database Engine didn’t use the right index during the query performance.
This is a correcting release that fixes a couple of problems, including exception when using Serilog (appeared in 1.6.0), wrong CRON format strings for intervals, and ones that relate to the .NET Core platform. They were revealed by adding support to continuously run unit tests on Windows, Linux and OS X for the .NET Core using AppVeyor and Travis CI.Continue Reading →
Hangfire 1.6 just released with experimental .NET Core platform support, deep integration with ASP.NET Core and
await programming model support. Start processing background jobs with ease even on Linux and OS X today!
This release contains major bug fixes, and is very recommended to upgrade. In short,
OperationCanceledException doesn’t cause background processing to stop now. Dashboard UI doesn’t leak
READ UNCOMMITTED isolation level, and
READ_COMMITTED_SNAPSHOT option doesn’t lead background jobs to stuck in Enqueued state.
This release fixes a bug appeared in version 1.5.6 of the
Hangfire.SqlServer package. There was a race condition between the
Worker threads, that causes the following problems, especially when small background jobs are processed.
Third beta of the upcoming 1.6 release. Contains a fix for a bug introduced in the previous beta, related to inability to add custom filters, as well as fixes from the recent 1.5.7 version.Continue Reading →
This is a correcting release that contains a fix for Dashboard UI crashes when using MSMQ (finally, thanks @yangman for this!), as well as some other minor fixes.Continue Reading →
New major version of Hangfire.Pro.Redis package (a part of Hangfire Pro) is almost here. Now it uses popular open-source library StackExchange.Redis to interact with Redis – a blazing fast data structure store.Continue Reading →
This release fixes distributed locks in
Hangfire.Pro.Redis that didn’t take the Prefix option into account. This may result in problems and different timeout when a single Redis instance is used for a bunch of applications with separate code base.
This is the second beta of upcoming the 1.6 release. It contains some new features, but most importantly, it incorporates bug fixes released with recent 1.5.5 and 1.5.6 versions related to SQL Azure and recurring jobs, please see them for more details.Continue Reading →
This release fixes an issue related to SQL Azure and background jobs, running more than 30 minutes. The problem is caused by Azure Database Engine which closes idle connections after 30 minutes of inactivity. Hangfire now periodically sends “keep-alive” queries to prevent this.Continue Reading →
This is a correcting release that fixes a problem with recurring jobs. It is related to a possible misfire on a first run, if a background processing server was inactive during the scheduled time.Continue Reading →
This is the first beta of an upcoming 1.6 release. Added support for async background job methods, ability to access context when creating an IoC container scope, dashboard with i18n support, redesigned Job Details page and zero latency for simple setup with SQL Server.Continue Reading →
This is a correcting release that is highly recommended to install. It fixes issue related to daylight savings in recurring jobs, and prevents infinite loop when changing state of a background job that doesn’t exists (for example, when deleting a job).Continue Reading →
This release fixes an issue with batch continuations, and is recommended for anyone who use them. The issue takes place, when a parent batch unable to complete within 1 hour, after which batch continuation may start with no jobs, because all of them were expired.Continue Reading →
This release fixes
Could not find type Hangfire.Batches.States.BatchAwaitingState exception appeared after upgrading from Hangfire Pro 1.4.0 or 1.4.1 when using batch continuations. Previuos release solved the issue partly, and didn’t cover those who just updated from versions listed above.
This is a recommended update for all users of Hangfire.SqlServer. It addresses to fix a bug presented in version 1.5.0, associated with incorrect acquiring/releasing of distributed locks after network problems, that may lead to Cannot release the application lock exceptions and other issues related to synchronization.Continue Reading →
This release fixes a security issue that caused Redis password leaks to log targets during the Hangfire Server startup. The password was also shown in dashboard. If you are using password-protected Redis, it is highly recommended to update to this release, and change Redis password.Continue Reading →
This is a hotfix for Hangfire 1.5.1 users. If you are using one of previous versions, you are unaffected by this bug.Continue Reading →
This is a correcting release that fixes some non-critical bugs.Continue Reading →
New versions of Hangfire Pro packages released to be compatible with Hangfire 1.5.0 version. Background jobs in batches now performing slightly faster, and Redis transaction scope was reduced to the
Commit method, allowing to query for data from apply state filters.
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!Continue Reading →
This is a correcting release that fixes problems with
TaskCanceledException thrown by a job method as well as issue with MSMQ extension, when background jobs are created within a
Version 1.5.0 will open many types that were internal in previous versions of Hangfire, like
IBackgroundFactory, to enable you to have completely custom background processing. This release simplifies the usage of these types, of course only to decrease the amount of questions on forums .
This is a maintenance release that fixes deadlocks in expiration manager, SQL command timeouts in distributed locks (and in the DisableConcurrentExecution filter) and correctly handles poison messages in a schedule.Continue Reading →
This is a correcting release that fixes a race condition related to batch continuations and slightly improves performance of a batch job processing, especially when using SQL Server. It is strongly recommended to upgrade.Continue Reading →
This is a pre-release version that adds a lot of great new features for Hangfire requested by you, including background processes, built-in support for custom scopes in IoC containers, queues for recurring jobs and much more!Continue Reading →
This is a correcring release that fixes NotSupportException: This stream does not support seek operations bug added in 1.4.4. This exception is raised on all unbuffered HTTP POST requests to the Dashboard.Continue Reading →
This is a correcting release that contain some fixes for the Dashboard UI:Continue Reading →
This release makes some hard-coded values (like maximum succeeded job list length) configurable through the
RedisStorageOptions class. It also helps to re-queue aborted background jobs earlier – instead of waiting for invisibility timeout after non-graceful shutdown, we are re-queueing aborted background jobs right after its server becomes inactive.
This is a correcting release that allows Hangfire to work with databases with case-sensitive and binary collations and fixes some other problems. Integration tests now are running against a case-sensitive database to reduce the probability of a mistake.Continue Reading →
This is a correcting release that fixes job prioritization via queue ordering in an instance of the
BackgroundJobServerOptions class and adds support for symbol packages.
This is a correcting release that contains some bug fixes.Continue Reading →
After a long development, batches and batch continuations are completed, and I’m glad to introduce these features. It was a real challenge for me and for Hangfire to implement these features as a regular extension. If you don’t share my joy (Batches? Why I need them?), I’ll show you why they are so important.Continue Reading →
About 4 months passed since release of version 1.3, and I’m pleased to introduce the next major release – Hangfire 1.4 with a lot of new features added and a lot of stability improvements made. This is the most important upgrade since version 1.0.Continue Reading →
This is a pre-release version of Hangfire 1.4.0 that is considered to be stable (and it is more stable than 1.3.x). Final version will be released after documentation changes (some awesome features added, please see 1.4.0-beta1).Continue Reading →
This is a pre-release version of Hangfire 1.4.0 that is considered to be stable.Continue Reading →
This pre-release contains a lot of new features of an upcoming Hangfire 1.4.0 – continuations, time zone support for recurring jobs, new dashboard ui, new configuration classes.Continue Reading →
This is a correcting release that fixes hourly/weekly statistics display in Dashboard, and a rare issue when we trying to cancel a recurring job from a client filter.Continue Reading →
This is a correcting release. Fixed a bug related to MSMQ or RabbitMQ extensions, when enqueued job is not processed and “stucked” in the Enqueued state indefinitely until we retry it manually.Continue Reading →
This is a correcting release. Expiration manager does not attempt to remove all the records at once now. Instead, it removes them by 1000 at a time, so you won’t experience timeout exceptions anymore. If you had problems with recurring jobs, they were fixed also.Continue Reading →
Hangfire has finally reached the
1.0 milestone! This means that public API is frozen and considered to be stable. Starting from now, the SemVer 2.0 specification will be used for versioning every package (but there may be exceptions, follow the README for each package).
Note. The following information may be outdated after 1.0 release. Please see the official documentation first.Continue Reading →