Add result wait service

This commit is contained in:
2025-10-30 12:25:03 +09:00
parent 3bd7341ecc
commit e31a075f58
10 changed files with 152 additions and 32 deletions

View File

@ -27,24 +27,38 @@ namespace Hcs.WebApp.BackgroundServices
if (stoppingToken.IsCancellationRequested) return;
using var scope = scopeFactory.CreateScope();
try
var manager = managerFactory.CreateManager(campaign);
if (manager != null)
{
var manager = managerFactory.CreateManager(campaign);
await manager.StartAsync(scope);
try
{
await manager.StartAsync(scope);
managers.Add(manager);
managers.Add(manager);
}
catch (Exception e)
{
await manager.EndWithFailAsync(scope, e);
}
}
catch (Exception e)
else
{
var headquartersService = scope.ServiceProvider.GetRequiredService<HeadquartersService>();
await headquartersService.SetCampaignEndedWithFailAsync(campaign.Id, e.Message);
await headquartersService.SetCampaignEndedWithFailAsync(campaign.Id, "Не удалось найти подходящий менеджер кампании");
}
}
foreach (var manager in managers)
{
using var scope = scopeFactory.CreateScope();
await manager.CheckStateAsync(scope);
try
{
await manager.CheckStateAsync(scope);
}
catch (Exception e)
{
await manager.EndWithFailAsync(scope, e);
}
}
managers.RemoveAll(x => x.State == IManager.ManagerState.Ended);