HangFire
1.7.9

An easy and reliable way to perform fire-and-forget, delayed and recurring, long-running, short-running, CPU or I/O intensive tasks inside ASP.NET applications. No Windows Service / Task Scheduler required. Even ASP.NET is not required.Backed by Redis, SQL Server, SQL Azure or MSMQ. This is a .NET alternative to Sidekiq, Resque and Celery.https://www.hangfire.io/

There is a newer version of this package available.
See the version list below for details.

• Changed – Implement long polling fetch for sub-second polling delays without `sp_getapplock`.• Fixed – Don't leak `DbConnection` instance when an exception occurs during its opening.• Fixed – Can not obtain connection from the pool exception after database was offline.• Fixed – High number of waits in SQL Server when Hangfire Servers are idle.

• Added – Allow modification of the Dashboard UI title (by @tbertenshaw).• Added – Support for HTML tags on the Dashboard UI title (by @caioproiete).• Added – Buttons for 1,000 and 5,000 items per page in dashboard.• Added – Links to previous/next pages to the top of the dashboard page.• Changed – Expose the `RazorPage.Context` property as a public member.• Fixed – Supplementary Chinese translation (by @mccj).• Fixed – Don't update real-time chart when too much time passed since the last update.

• Changed – Add support for dash characters (`-`) in queue names (by @caioproiete).• Fixed – Show actual error in Dashboard UI when recurring job can't be scheduled.• Fixed – Ensure backward compatibility when JSON payloads are serialized with field names only.• Fixed – Non-awaited continuations can bring down the whole app when `TaskScheduler` is set to `null`.• Fixed – Timeout value is not respected in some cases in the `WaitOneAsync` method.

• Added – Full .NET Core 2.0 support by explicitly targeting .NET Standard 2.0.• Added – An overloaded AddHangfire method with `IServiceProvider` parameter (by @ericgreenmix and @denis-ivanov).• Added – `BackgroundJobServerHostedService` class based on `IHostedService` interface.• Added – `IServiceCollection.AddHangfireServer` method to register the server during configuration.• Changed – Custom services for factory, performer and state changer interfaces will be picked up only when all of them registered.

Hangfire.SqlServer

• Added – Full .NET Core 2.0 support by explicitly targeting .NET Standard 2.0.• Added – `Schema 7` migration to fix the `IX_HangFire_Set_Score` index to include the `Key` column.• Added – `Schema 6` migration with less indexes, better physical layout and `bigint` support (disabled by default).• Added – Blocking fetch support for sliding expiration-based fetch to avoid excessive polling.• Added – `SqlServerStorageOptions.EnableHeavyMigrations` switch to automatically install even heavy migrations.• Added – `SqlServerStorageOptions.DisableGlobalLocks` property to avoid custom locking scheme.• Added – `SqlServerStorageOptions.UsePageLocksOnDequeue` property to use less CPU consuming fetch.• Added – Callback method to allow to open the database with impersonation (by @BjoernHund).• Added – `SqlServerStorageOptions.UseRecommendedIsolationLevel` option to set the minimum possible level.• Changed – Identity columns either converted to the `bigint` type, or entirely removed.• Changed – Clustered indexes were organized according to the access patterns of their tables.• Changed – Most of secondary indexes were either removed or made filtered.• Changed – Optimize sliding-expiration-based fetching to use even less CPU time.• Changed – Use write reordering and fine-grained locking scheme to improve parallelism.• Changed – Monitoring API doesn't check state data to see state transition time.• Changed – Allow to use zero-based poll interval when sliding invisibility timeout.• Changed – Short paths for the `CreateExpiredJob` method to avoid some round-trips.• Changed – Set `SqlParameter` types explicitly to not to duplicate query plans.• Changed – Batch support for `AddToQueue` method when default provider is used.• Changed – Check `FetchedAt` has expected value to prevent prolonging others' work.• Changed – Use more recent Dapper 1.50.7 on all platforms except .NET Framework 4.5.• Changed – Dapper package is internalized now even on .NET Core to avoid possible conflicts.• Fixed – Avoid unnecessary waits in state changer when job was already expired.• Fixed – Cannot resolve the collation conflict in `CountersAggregator`.• Fixed – Background processing stops when identity columns exceed the `Int32.MaxValue`.• Fixed – Slowdown of scheduled jobs due to the missing index on the `[Set]` table.

This repo contains the code for allReady, an open-source solution focused on increasing awareness, efficiency and impact of preparedness campaigns as they are delivered by humanitarian and disaster response organizations in local communities.