Чтобы использовать 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 поставит задание в очередь, и оно будет обрабатываться асинхронно в фоновом режиме.