Hangfire
An easy way to perform background job processing
An easy way to perform background processing in .NET and .NET Core applications. No Windows Service or separate process required. Backed by persistent storage. Open and free for commercial use. Easy to set up, easy to use. No Windows Service, no Windows Scheduler, no separate applications required. Background jobs are regular static or instance .NET methods with regular arguments, no base class or interface implementation required. Once a background job was created without any exception, Hangfire takes the responsibility to process it with the at least once semantics. Although the default installation uses SQL Server and polling technique to fetch jobs, you can leverage MSMQ or Redis extensions to reduce the processing latency to minimum. Background method calls and their arguments are serialized and may overcome the process boundaries. Job filters allow you to add custom features to the background processing in a way similar to ASP.NET MVC action filters.