Skip to content

Latest commit

 

History

History
83 lines (55 loc) · 4.25 KB

index.md

File metadata and controls

83 lines (55 loc) · 4.25 KB
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.

Packages

Hangfire.Pro.Redis

Background Jobs Throughput

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.

What's new in Pro

  • 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.Pro.PerformanceCounters

Performance Monitor

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.

Coming Soon

Continuations

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.

Parallel processing

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.

Async methods support

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();
}