feat(bll, all): обновлена библиотека RabbitMq.Client до версии 7.1.2. Обновлен MqServiceV2. В IMqSettings добавлен параметр PrefetchCount - макс кол-во одновременных обработок очередей. Обновлены связанные проекты под новый MqService. В проектах Aihit, SyncTemplate, SyncSchedule установлен параметр в конфиг PrefetchCount =100
This commit is contained in:
@@ -20,7 +20,7 @@ namespace PARR.EsppScheduleSync
|
||||
private readonly ISyncService<EsppObjectSchedule> syncService;
|
||||
private readonly SettingsFromDb settingsFromDb;
|
||||
private readonly IServiceProvider serviceProvider;
|
||||
private readonly INextRunModifierService nextRunModifierService;
|
||||
//private readonly INextRunModifierService nextRunModifierService;
|
||||
|
||||
public ScheduleSyncher(
|
||||
ILogger<ScheduleSyncher> logger,
|
||||
@@ -28,8 +28,8 @@ namespace PARR.EsppScheduleSync
|
||||
IMqService mqService,
|
||||
ISyncService<EsppObjectSchedule> syncService,
|
||||
SettingsFromDb settingsFromDb,
|
||||
IServiceProvider serviceProvider,
|
||||
INextRunModifierService nextRunModifierService
|
||||
IServiceProvider serviceProvider
|
||||
//INextRunModifierService nextRunModifierService
|
||||
)
|
||||
{
|
||||
this.logger = logger;
|
||||
@@ -38,7 +38,7 @@ namespace PARR.EsppScheduleSync
|
||||
this.syncService = syncService;
|
||||
this.settingsFromDb = settingsFromDb;
|
||||
this.serviceProvider = serviceProvider;
|
||||
this.nextRunModifierService = nextRunModifierService;
|
||||
//this.nextRunModifierService = nextRunModifierService;
|
||||
if (globalSettings.MqSettings == null)
|
||||
{
|
||||
logger.LogError("Нет секции настроек хранилища. MqSettings, EsppTemplates");
|
||||
@@ -47,9 +47,9 @@ namespace PARR.EsppScheduleSync
|
||||
}
|
||||
|
||||
|
||||
public void Start()
|
||||
public async Task StartAsync()
|
||||
{
|
||||
var isConnected = mqService.InitConsumer(globalSettings!.MqSettings!, SyncScheduleAsync);
|
||||
var isConnected = await mqService.InitConsumerAsync(globalSettings!.MqSettings!, SyncScheduleAsync);
|
||||
|
||||
if (!isConnected)
|
||||
throw new Exception("Ошибка при подключении к RabbitMq");
|
||||
@@ -58,9 +58,9 @@ namespace PARR.EsppScheduleSync
|
||||
}
|
||||
|
||||
|
||||
public void Stop()
|
||||
public async Task StopAsync()
|
||||
{
|
||||
mqService.Dispose();
|
||||
await mqService.DisposeAsync();
|
||||
|
||||
logger.LogInformation($"=== === === Соединение с очередью {globalSettings.MqSettings!.QueueName} закрыто === === ===");
|
||||
}
|
||||
@@ -80,6 +80,19 @@ namespace PARR.EsppScheduleSync
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
private EsppObjectSchedule ConvertDbObjToEsppObj(Template template)
|
||||
{
|
||||
//дефолтное значение, изменится в сервисе nextRunModifierService
|
||||
var nextRunByAccountRobotTimeZone = DateTimeOffset.MinValue;
|
||||
|
||||
using (var scope = serviceProvider.CreateScope())
|
||||
{
|
||||
var nextRunModifierService = scope.ServiceProvider.GetService<INextRunModifierService>();
|
||||
if (nextRunModifierService == null)
|
||||
throw new Exception($"Не найден сервис: {nameof(INextRunModifierService)}");
|
||||
|
||||
nextRunByAccountRobotTimeZone = nextRunModifierService.GetNextRunByAccountRobotTimeZone(template.NextRun);
|
||||
}
|
||||
|
||||
|
||||
var esppObjectFromDb = new EsppObjectSchedule
|
||||
{
|
||||
TemplateName = template.Name,
|
||||
@@ -92,8 +105,10 @@ namespace PARR.EsppScheduleSync
|
||||
//Мы решили, что для всех расписаний "Нет исключений", если что-то поменяется, тут нужно переделать
|
||||
TypeV60calendar = settingsFromDb.ScheduleExclude == "Нет исключений" ? "NONE" : "",
|
||||
//Scheduled = EsppScheduleHelpers.GetNextRun(template.NextRun),
|
||||
Scheduled = EsppScheduleHelpers.GetNextRun(nextRunModifierService.GetNextRunByAccountRobotTimeZone(template.NextRun)),
|
||||
BasisTime = EsppScheduleHelpers.GetGenerationTime(nextRunModifierService.GetNextRunByAccountRobotTimeZone(template.NextRun)),
|
||||
//Scheduled = EsppScheduleHelpers.GetNextRun(nextRunModifierService.GetNextRunByAccountRobotTimeZone(template.NextRun)),
|
||||
//BasisTime = EsppScheduleHelpers.GetGenerationTime(nextRunModifierService.GetNextRunByAccountRobotTimeZone(template.NextRun)),
|
||||
Scheduled = EsppScheduleHelpers.GetNextRun(nextRunByAccountRobotTimeZone),
|
||||
BasisTime = EsppScheduleHelpers.GetGenerationTime(nextRunByAccountRobotTimeZone),
|
||||
Timezone = settingsFromDb.ScheduleTimezone,
|
||||
//Мы решили, что для всех расписаний "Отсутствует дата завершения", если что-то поменяется, тут нужно переделать
|
||||
TerminationType = settingsFromDb.ScheduleRepeatRange == "Отсутствует дата завершения" ? "forever" : "",
|
||||
@@ -151,7 +166,7 @@ namespace PARR.EsppScheduleSync
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
esppObject.Dayofmonth = esppSchedule.Values.First(t => t.Order == 0).Value.EsppExportValue;
|
||||
esppObject.Dayofmonth = esppSchedule.Values.First(t => t.Order == 0).Value.EsppExportValue;
|
||||
//}
|
||||
break;
|
||||
case EsppSchTypeScheduleEnum.Monthly2:
|
||||
|
||||
Reference in New Issue
Block a user