Использование Hangfire в контроллере .NET Core: пошаговое руководство

Чтобы использовать Hangfire в контроллере.NET Core, вы можете выполнить следующие действия:

Шаг 1. Установите Hangfire

  • Откройте консоль диспетчера пакетов NuGet в Visual Studio.
  • Выполните следующую команду, чтобы установить пакет Hangfire:
    Install-Package Hangfire

Шаг 2. Настройте Hangfire

  • Откройте файл Startup.csв своем проекте.NET Core.

  • В метод ConfigureServicesдобавьте следующий код для настройки Hangfire:

    services.AddHangfire(config =>
    {
    // Configure Hangfire to use your preferred storage provider
    config.UseSqlServerStorage("<connection_string>");
    });

    Замените фактической строкой подключения к базе данных.

  • В методе Configureдобавьте следующий код для инициализации Hangfire:

    app.UseHangfireDashboard();
    app.UseHangfireServer();

Шаг 3. Создайте задание Hangfire

  • Создайте новый класс или метод, который представляет задание, которое вы хотите выполнить. Например:
    public class MyHangfireJob
    {
    public void ProcessJob()
    {
        // Perform your job logic here
    }
    }

Шаг 4. Поставьте задание в очередь в контроллере

  • В вашем контроллере вы можете поставить задание Hangfire в очередь, внедрив интерфейс IBackgroundJobClientи вызвав метод Enqueue. Например:
    private readonly IBackgroundJobClient _backgroundJobClient;
    public MyController(IBackgroundJobClient backgroundJobClient)
    {
    _backgroundJobClient = backgroundJobClient;
    }
    public IActionResult EnqueueJob()
    {
    _backgroundJobClient.Enqueue<MyHangfireJob>(x => x.ProcessJob());
    return Ok("Job enqueued successfully!");
    }

Вот и все! Теперь, когда вы вызываете действие EnqueueJobв своем контроллере, Hangfire поставит задание в очередь, и оно будет обрабатываться асинхронно в фоновом режиме.