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

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

Сообщение Anonymous »

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

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

services.AddHostedService();

// Example of the background service:
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#»