Как динамически назначать рабочие места в проекте Service worker

#c# #service-worker #asp.net-core-3.1

Вопрос:

У меня есть проект service worker net core 3.1, который отвечает за получение данных с онлайн-устройств:

 protected override async Task ExecuteAsync(CancellationToken stoppingToken) {   var serviceProvider = new ServiceCollection().AddHttpClient().BuildServiceProvider();  var httpClientFactory = serviceProvider.GetServicelt;IHttpClientFactorygt;();    while (!stoppingToken.IsCancellationRequested)  {  _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);   //Get Relevant Gateways  string GetRouters = "SELECT * FROM RouterModel;";  var Routers = await dataAccess.LoadDatalt;RouterModel, dynamicgt;(GetRouters, new { }, _config.GetConnectionString("GalronDb"));   string GetMeters = "SELECT * FROM PowerMeterModel;";  var Meters = await dataAccess.LoadDatalt;PowerMeterModel, dynamicgt;(GetMeters, new { }, _config.GetConnectionString("GalronDb"));    foreach (RouterModel Router in Routers)  {  if (Router.IsHavePowerMeters)  {  foreach (PowerMeterModel Meter in Meters.Where(x =gt; x.IdGateway == Router.Id).ToList())  {  if (Meter.IsActive)  {   actionList.Add(new Action(() =gt;  {  GetNewReadings(Router, Meter, httpClientFactory);   }));  }  }  }   }   Parallel.Invoke(actionList.ToArray());  actionList.Clear();   _logger.LogInformation("*************** Sync loop is finished ***************");   await Task.Delay(5 * 60 * 1000, stoppingToken);   } }  

Проблема с приведенным выше кодом заключается в том, что все устройства зависят друг от друга, если в загруженной сети находится всего несколько устройств с плохим lantecty, это заставит все остальные устройства сидеть и ждать их, прежде чем начнется новый цикл синхронизации.

Я ищу решение для динамического назначения рабочего на каждое устройство, чтобы изолировать устройства с медленной синхронизацией, что позволит быстро синхронизировать все остальные устройства.

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