Start Debugging

ASP.NET Core

120 статей · Страница10из12

BackgroundService vs IHostedService vs Hangfire для фоновых задач в .NET 11

Выбирайте BackgroundService для внутрипроцессных циклов, чистый IHostedService для тонкого контроля жизненного цикла и Hangfire, когда задачи должны переживать перезапуск. Матрица принятия решений с кодом и одна деталь, которая решает за вас.

Как безопасно выполнять fire-and-forget работу в ASP.NET Core с помощью BackgroundService

Вызов Task.Run из контроллера теряет работу при остановке, проглатывает исключения и захватывает уже освобождённые scoped-сервисы. Безопасный паттерн - ограниченная очередь Channel, которую опустошает BackgroundService, открывая новый scope для каждой единицы работы и завершая выполняемую работу в StopAsync.

Как использовать scoped-сервисы внутри BackgroundService в ASP.NET Core 11

BackgroundService является синглтоном, поэтому не может напрямую внедрить scoped-сервис вроде DbContext. Внедрите IServiceScopeFactory, открывайте один scope на единицу работы через CreateAsyncScope, разрешайте сервис внутри него и освобождайте scope по завершении работы.

Minimal APIs vs контроллеры в ASP.NET Core 11: что выбрать в 2026 году?

В ASP.NET Core 11 по умолчанию выбирайте minimal APIs. Контроллеры берите только тогда, когда нужны возможности MVC, которые minimal APIs всё ещё не покрывают: маршрутизация по соглашениям для множества действий, фильтры в стиле MVC или Razor-представления.
Назад Вперёд