layout | title | product_name | sub_active |
---|---|---|---|
products |
Hangfire Pro |
Hangfire Pro |
pro-overview |
Hangfire Pro is a set of extensions packages that boost the performance and simplify the maintenance of background job processing in large applications. Hangfire Pro packages are available under paid subscriptions. After purchase, you receive binaries and access to the private repository on GitHub.
Hangfire Pro comes with Hangfire.Redis
package that uses Redis server to persist background jobs and other data.
Redis is famous for its outstanding performance and here are the results of relative comparison between Hangfire.SqlServer and Hangfire.Redis storages.
- ServiceStack packages are merged and internalized, so you can use either v3 or v4 versions of ServiceStack framework in your project.
- Prefix for Redis keys is now configurable, you can now use the same database for different environments, e.g. staging and production.
Hangfire.PerformanceCounters
package allows Hangfire to publish its internal metrics to Windows Performance Counters – the standard way to monitor Windows applications and services.
So, you can use existing tools like Nagios, New Relic, Server Density and others to proactively monitor the health of your services.
Continuations allow you to perform one jobs after others.
BatchJob.Create(() => Console.Write("Hello, ")) .ContinueWith(() => Console.WriteLine("world!"));
This API is for preview purposes only, it is subject to change after the final implementation.
With parallel processing you can split your work into a couple of small sub-jobs that will be processed in parallel. This feature together with continuations allows you to build more complex, but still reliable workflows with Hangfire.
BatchJob .Create(x => { x.Enqueue(() => Console.Write("Messy")); x.Enqueue(() => Console.Write("Output")); x.Enqueue(() => Console.Write("With")); }) .ContinueWith(() => Console.WriteLine("Predictable continuation"));
This API is for preview purposes only, it is subject to change after the final implementation.
You don't need to guess the correct number of worker to handle I/O intensive jobs efficiently. Hangfire will be able to do other job while async operations pending to complete.
public static async Task HighlightAsync(int snippetId) { var snippet = await Context.Snippets.SingleOrDefaultAsync(snippetId); snippet.Code = await RemoteService.HighlightAsync(snippet.Code); await Context.SaveChangesAsync(); }