The Why and How of Hangfire
Are you looking for an easy and efficient way to manage background tasks in your .NET applications? Look no further than Hangfire! With Hangfire, you can automate processes like dossier creation from multiple sources, preventing peak loads during business hours. This lightweight and user-friendly framework allows you to create and manage different types of tasks, such as Fire and Forget jobs, without the need for a background service on your server.
What is Hangfire?
Hangfire is a .NET framework that adds an extra layer on top of your code, allowing you to pass calls to Hangfire which stores them into its own database. This means you don't have to worry about enqueued work being blocked, as Hangfire manages the calls for you. It even has an automatic retry mechanism that retries jobs in an intelligent manner if they fail. Hangfire's clean dashboard also allows you to manage and monitor enqueued jobs.
A few examples of the types of jobs:
Fire-and-forget (like we needed)
Delayed
Recurring (like a cron job)
Continuations of other jobs
Jobs that you enqueue are saved in a persistent storage of your choice, whether relational or document-based. This means that even if your application shuts down unexpectedly, your jobs are safe and ready to be handled when the application restarts. What if something went wrong and my job throws an exception? Nothing to worry about really. Hangfire has its own automatic retry mechanism that retries your jobs for you in an intelligent manner.
How do you implement Hangfire?
To use Hangfire, you'll first need to install the Hangfire NuGet package and set up a Hangfire server to manage your background jobs. Once you've done that, you can create background job methods that will be executed by the server on a specified schedule or when triggered by an event. Hangfire also provides a dashboard for monitoring the status of your background jobs and configuring various settings. Hangfire's UI is also protected by an API key that you define, and it's accessible from /hangfire if you have the API key.Overall, implementing Hangfire is a relatively straightforward process that can greatly improve the performance and scalability of your .NET applications.