Я использую в памяти Hangfire (1.6.21) в приложении ASP.net core (2.2).В Startup.cs
я настраиваю сервис как одиночный:
services.AddSingleton<IXXXService, XXXService>(); // In ConfigureServices(...)
, а также запускаю Hangfire с помощью следующих строк:
app.UseHangfireServer(); // In Configure(...)
Вот упрощенный код XXXService
:
public class XXXService : IXXXService
{
public ExternalAPIService()
{
Console.WriteLine("xxx");
}
public void QueueRequest(Guid requestId)
{
BackgroundJob.Enqueue(() => this.AnalyzeRequest(requestId));
}
public async Task AnalyzeRequest(Guid requestId)
{
Console.WriteLine("Analyzing request...");
}
}
Проблема в том, что, хотя XXXService
определен как одиночный - и он действительно создается только один раз посредством последовательных запросов, он воссоздается при пожаре при конечном вызове AnalyzeRequest
.Как я могу направить hangfire, чтобы использовать одноэлементный объект, управляемый по умолчанию DI ASP?