Я внедряю синхронизированную фоновую службу на своем веб-сайте ASP.NET Core, используя код, найденный по адресу в этом блоге , в качестве модели.Бит, который выполняет настоящую работу, выглядит следующим образом ...
protected async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
// Put your code here
// Wait 30 minutes before running again.
await Task.Delay(TimeSpan.FromMinutes(30), stoppingToken);
}
}
Это работает нормально, пока что-то не вызовет сбой службы.Очевидно, что в производственном приложении вы надеетесь, что этого не произойдет, но на практике я должен учитывать такую возможность.
Насколько я вижу, среда создает и запускает задачу,а остальная часть приложения ничего об этом не знает.Могу ли я определить, происходит ли сбой службы IHostedService
, и могу ли я ее перезапустить?Если нет, что мне делать?Выполнение этого через регулярные промежутки времени имеет решающее значение для веб-сайта, поэтому мне нужно знать, что я могу справиться с любыми проблемами.