feat(bll, all): обновлена библиотека RabbitMq.Client до версии 7.1.2. Обновлен MqServiceV2. В IMqSettings добавлен параметр PrefetchCount - макс кол-во одновременных обработок очередей. Обновлены связанные проекты под новый MqService. В проектах Aihit, SyncTemplate, SyncSchedule установлен параметр в конфиг PrefetchCount =100

This commit is contained in:
Mikhail Trubnikov
2025-08-20 14:10:22 +10:00
parent cdd11cdb4d
commit 85798c0956
58 changed files with 621 additions and 341 deletions

View File

@@ -2,7 +2,7 @@
{
public interface ITemplateSyncer
{
void Start();
void Stop();
Task StartAsync();
Task StopAsync();
}
}

View File

@@ -17,6 +17,7 @@ namespace PARR.EsppTemplateSync.Settings
public string QueueName { get; set; } = string.Empty;
public string User { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
public ushort? PrefetchCount { get; set; } = 0;
}
internal class StorageSettings

View File

@@ -39,7 +39,7 @@ namespace PARR.EsppTemplateSync
filterExtensions = string.Join(",", storageSettings.EsppTemplates!.AllowedExtensions).Replace(".", "*.");
}
public void Start()
public void StartAsync()
{
//смотрим, доступна ли папка
if (!Directory.Exists(dirPath))
@@ -80,7 +80,7 @@ namespace PARR.EsppTemplateSync
}
public void Stop()
public void StopAsync()
{
//watcher?.Dispose();
logger.LogInformation($"=== === === FileWatcher остановлен === === ===");
@@ -132,5 +132,14 @@ namespace PARR.EsppTemplateSync
//}
}
Task ITemplateSyncer.StartAsync()
{
throw new NotImplementedException();
}
Task ITemplateSyncer.StopAsync()
{
throw new NotImplementedException();
}
}
}

View File

@@ -15,21 +15,25 @@ namespace PARR.EsppTemplateSync
private readonly GlobalSettings globalSettings;
private readonly IMqService mqService;
private readonly SettingsFromDb settingsFromDb;
private readonly IServiceProvider serviceProvider;
private readonly ISyncService<EsppObjectTemplate> syncService;
//private readonly IServiceProvider serviceProvider;
public TemplateMQSyncer(
ILogger<TemplateMQSyncer> logger,
GlobalSettings globalSettings,
IMqService mqService,
SettingsFromDb settingsFromDb,
IServiceProvider serviceProvider
ISyncService<EsppObjectTemplate> syncService
//IServiceProvider serviceProvider
)
{
this.logger = logger;
this.globalSettings = globalSettings;
this.mqService = mqService;
this.settingsFromDb = settingsFromDb;
this.serviceProvider = serviceProvider;
this.syncService = syncService;
//this.serviceProvider = serviceProvider;
if (globalSettings.MqSettings == null)
{
logger.LogError("Нет секции настроек хранилища. MqSettings, EsppTemplates");
@@ -37,10 +41,10 @@ namespace PARR.EsppTemplateSync
}
}
public void Start()
public async Task StartAsync()
{
var isConnected = mqService.InitConsumer(globalSettings!.MqSettings!, SyncTemplateAsync);
var isConnected = await mqService.InitConsumerAsync(globalSettings!.MqSettings!, SyncTemplateAsync);
if (!isConnected)
throw new Exception("Ошибка при подключении к RabbitMq");
@@ -48,9 +52,9 @@ namespace PARR.EsppTemplateSync
logger.LogInformation($"Запущена проверка очереди {globalSettings.MqSettings!.QueueName}.");
}
public void Stop()
public async Task StopAsync()
{
mqService.Dispose();
await mqService.DisposeAsync();
logger.LogInformation($"=== === === Соединение с очередью {globalSettings.MqSettings!.QueueName} закрыто === === ===");
}
@@ -58,16 +62,16 @@ namespace PARR.EsppTemplateSync
private async Task SyncTemplateAsync(string str)
{
using (var scope = serviceProvider.CreateScope())
{
var syncService = scope.ServiceProvider.GetService<ISyncService<EsppObjectTemplate>>();
//using (var scope = serviceProvider.CreateScope())
//{
// var syncService = scope.ServiceProvider.GetService<ISyncService<EsppObjectTemplate>>();
if (syncService == null)
throw new Exception($"Не смог получить серивс {nameof(ITemplateSyncer)}");
// if (syncService == null)
// throw new Exception($"Не смог получить серивс {nameof(ITemplateSyncer)}");
await syncService.SyncEsppObjectAsync(str, ParseStrToEsppObject, ConvertDbObjToEsppObj);
//}
await syncService.SyncEsppObjectAsync(str, ParseStrToEsppObject, ConvertDbObjToEsppObj);
}
}