Tarefas em segundo plano, o arroz com feijão de todo desenvolvedor. O .NET Core surge oferecendo um monte de opções para essas tarefas de fundo, como se não conseguíssemos viver sem isso. Vamos ver qual delas pode ser útil para o seu projeto.
Aqueles problemas que você tenta resolver com Background Services? São basicamente os mesmos que você já lidava com Windows Services, uma Console Application no Docker ou os WebJobs, mas agora com um nome mais chique. Se isso já soa familiar, siga em frente.
Vou tentar clarear um pouco as ideias sobre essas opções. Boa sorte.
ASP.NET Core Background Services
Chegamos aos Background Services, que usam a interface IHostedService. Basicamente, são um punhado de Tasks rodando no ASP.NET Core, consumindo recursos. E sempre que a aplicação reinicia, seus serviços de fundo também reiniciam. Pelo lado bom, eles podem ajudar a gerar relatórios Excel ou PDFs, ou a manter o cache atualizado regularmente.
WebJobs
WebJobs rodam no mesmo App Service Plan do Azure que os Background Services. Se parece novidade, não é bem isso. Eles são a "banda cover" da sua banda favorita: parecidos, mas diferentes. A vantagem é que quando uma nova instância acontece, só a web aumenta, enquanto o WebJob segue firme.
Windows Services
Lembra dos Windows Services? Eles operam em sua própria infraestrutura, longe do ASP.NET. Para usar essa "independência", você vai precisar de uma VM separada. Se quiser usar Azure, Google Cloud ou AWS, esquece, precisa de espaço próprio. Os Windows Services são o lembrete dos tempos em que tudo era mais complicado, só por diversão.
Se quiser transformar seu Serviço Windows em uma Console com Docker, veja aqui: Windows Services para Console com Docker.
Console com Docker
Console com Docker: parecido com os Windows Services, mas mais moderno. Você se mantém independente, sem precisar de uma VM. Gerenciar e publicar é fácil. Funcionam bem no Azure, Google Cloud ou AWS, sem se prender a ferramentas específicas que só dão dor de cabeça.
Confira o artigo e relaxe: .NET Core - Console Application com Docker
Conclusão
Se chegou até aqui, espero que meu mau humor tenha te ajudado a escolher a opção de serviço em segundo plano que vai te dar menos dor de cabeça.