Как запустить один экземпляр фонового обслуживания? ⇐ C#

Место общения программистов C#
Anonymous
Как запустить один экземпляр фонового обслуживания?

Сообщение Anonymous »

У меня есть фоновое обслуживание , которое мне нужно для запуска каждые 4 часа. У меня сложилось впечатление, что он запустит только один экземпляр. Недавно я заметил некоторые дубликаты данных и поворачивает, что My FounalService использует несколько экземпляров, и каждый экземпляр, кажется, изолирован, например, не может обмениваться информацией о состоянии.

Код: Выделить всё

services.AddHostedService();
< /code>
Пример фоновой службы: < /p>
  public class MyBackgroundTask : BackgroundService
{

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{

await Task.Yield();

while (!stoppingToken.IsCancellationRequested)
{

try
{
// do some calculations

await Task.Delay(TimeSpan.FromHours(4), stoppingToken);
}
catch (Exception e)
{

continue;
}

}
}
}
Я попытался добавить его в качестве синглтона, но, похоже, он не выполняется при нагрузке, какой -нибудь совет о том, что я должен попробовать?

Подробнее здесь: https://stackoverflow.com/questions/686 ... undservice

Вернуться в «C#»