feat(bll, all): обновлена библиотека RabbitMq.Client до версии 7.1.2. Обновлен MqServiceV2. В IMqSettings добавлен параметр PrefetchCount - макс кол-во одновременных обработок очередей. Обновлены связанные проекты под новый MqService. В проектах Aihit, SyncTemplate, SyncSchedule установлен параметр в конфиг PrefetchCount =100
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
{
|
||||
public interface ITemplateSyncer
|
||||
{
|
||||
void Start();
|
||||
void Stop();
|
||||
Task StartAsync();
|
||||
Task StopAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user