top of page

Agendamento de Tarefas em Segundo Plano com Hangfire

O Hangfire é uma biblioteca para .NET que facilita a execução de tarefas em segundo plano e o agendamento de jobs. Ele permite que você agende tarefas recorrentes ou execute operações longas fora do fluxo principal da aplicação, sem a necessidade de escrever código complexo para gerenciar threads ou processos. Neste exemplo, veremos como configurar o Hangfire para executar uma tarefa em segundo plano e agendar uma tarefa recorrente.


Bibliotecas:


Para usar a biblioteca Hangfire, instale o seguinte pacote NuGet no seu projeto:


Install-Package Hangfire
Install-Package Hangfire.MemoryStorage

Código de Exemplo:


using Hangfire;
using Hangfire.MemoryStorage;
using System;
using System.Threading.Tasks;

class Program
{
    static void Main(string[] args)
    {
        // Configurando Hangfire com armazenamento em memória
        GlobalConfiguration.Configuration.UseMemoryStorage();

        using (var server = new BackgroundJobServer())
        {
            // Agendando um job para execução imediata
            BackgroundJob.Enqueue(() => TarefaEmSegundoPlano());

            // Agendando um job recorrente (executado a cada minuto)
            RecurringJob.AddOrUpdate("tarefa-recorrente", () => TarefaRecorrente(), Cron.Minutely);

            Console.WriteLine("Jobs agendados. Pressione Enter para sair...");
            Console.ReadLine();
        }
    }

    // Tarefa que será executada em segundo plano
    public static void TarefaEmSegundoPlano()
    {
        Console.WriteLine("Tarefa em segundo plano executada.");
    }

    // Tarefa recorrente
    public static void TarefaRecorrente()
    {
        Console.WriteLine("Tarefa recorrente executada.");
    }
}

Explicação do Código:


Neste exemplo, configuramos o Hangfire para usar o armazenamento em memória (através do pacote Hangfire.MemoryStorage) e inicializamos o servidor de jobs em segundo plano. Usamos o método BackgroundJob.Enqueue para agendar a execução imediata de uma tarefa chamada TarefaEmSegundoPlano. Além disso, usamos RecurringJob.AddOrUpdate para agendar uma tarefa recorrente (TarefaRecorrente), que será executada a cada minuto. O código fica em um loop aguardando o usuário pressionar Enter para encerrar a aplicação.


Conclusão:


O Hangfire é uma solução simples e poderosa para gerenciar tarefas em segundo plano e agendadas em aplicações .NET. Ele abstrai a complexidade de trabalhar diretamente com threads ou timers, oferecendo uma API fácil de usar para agendar jobs de maneira eficiente.


0 visualização

Posts recentes

Ver tudo

Dica C#: Default Interface Methods

Vamos falar sobre uma novidade do C# 12: Default Interface Methods. Esse recurso permite que interfaces contenham implementações de...

Dica C#: Global Using Directives

Vamos para uma dica do C# 10: Global Using Directives. Com essa funcionalidade, você pode definir diretivas using globais que se aplicam...

bottom of page