diff --git a/PARR.DAL/DomainServices/UnitFilterService/Models/UnitFilterServiceOptions.cs b/PARR.DAL/DomainServices/UnitFilterService/Models/UnitFilterServiceOptions.cs index 561f0264..72a2b9a6 100644 --- a/PARR.DAL/DomainServices/UnitFilterService/Models/UnitFilterServiceOptions.cs +++ b/PARR.DAL/DomainServices/UnitFilterService/Models/UnitFilterServiceOptions.cs @@ -2,6 +2,6 @@ { internal class UnitFilterServiceOptions { - public int LoadBatchSize { get; set; } = 1000; + public int LoadBatchSize { get; set; } = 200; } } diff --git a/PARR.DAL/Services/Implementations/RobotConfigurationService.cs b/PARR.DAL/Services/Implementations/RobotConfigurationService.cs index c5630245..17b81ad0 100644 --- a/PARR.DAL/Services/Implementations/RobotConfigurationService.cs +++ b/PARR.DAL/Services/Implementations/RobotConfigurationService.cs @@ -43,9 +43,28 @@ namespace PARR.DAL.Services.Implementations default: break; } - } + + public bool SetUpdateTaskStatusIfAllow(RobotConfiguration configuration) + { + var updatingStatus = TaskStatusEnum.Updating; + + // ставить статус Updating можно только если текущий статус == Ok + if (configuration.TaskStatusCode != (int)TaskStatusEnum.Ok) + { + logger.LogDebug("Нельзя установить статус {newStatus} для конфигурации {configurationId}, так как текущий статус {currentStatus}", updatingStatus, configuration.Id, configuration.TaskStatusCode); + return false; + } + + // Статус ОК, можно ставить Updating + ChangeTaskStatus(updatingStatus, configuration); + logger.LogDebug("Установлен статус {newStatus} для конфигурации {configurationId}", updatingStatus, configuration.Id); + + return true; + } + + public void ChangeRobotStatus(RobotStatusEnum robotStatus, RobotConfiguration configuration) { configuration.RobotStatusCode = (int)robotStatus; diff --git a/PARR.DAL/Services/Interfaces/IRobotConfigurationService.cs b/PARR.DAL/Services/Interfaces/IRobotConfigurationService.cs index f4b9045e..37eaab54 100644 --- a/PARR.DAL/Services/Interfaces/IRobotConfigurationService.cs +++ b/PARR.DAL/Services/Interfaces/IRobotConfigurationService.cs @@ -36,5 +36,12 @@ namespace PARR.DAL.Services.Interfaces /// /// RobotConfiguration GetFromTemplateByRobotCode(RobotsEnum robotsEnum, Template template); + + /// + /// Установить статус задания "Обновить", если разрешено + /// + /// + /// true - если изменил статус, false - нельзя изменить статус + bool SetUpdateTaskStatusIfAllow(RobotConfiguration configuration); } } diff --git a/PARR.EsppSync/SyncService.cs b/PARR.EsppSync/SyncService.cs index 7757e8f3..63ac7379 100644 --- a/PARR.EsppSync/SyncService.cs +++ b/PARR.EsppSync/SyncService.cs @@ -155,6 +155,7 @@ namespace PARR.EsppSync { SetUpdateStatus(ref template, robotConfigurationService, esppObject.Robot); + //todo: инициатор!!! if (!await templateService.CommitAsync()) logger.LogError("Не удалось изменить запись Template {TemplateName}, Robot: {Robot}", template.Name, esppObject.Robot); else diff --git a/PARR.NextRun/NextRunIntervalService.cs b/PARR.NextRun/NextRunIntervalService.cs index beaa4b9e..1eeba62b 100644 --- a/PARR.NextRun/NextRunIntervalService.cs +++ b/PARR.NextRun/NextRunIntervalService.cs @@ -65,12 +65,6 @@ namespace PARR.NextRun { logger.LogInformation("Начинаю обновлять NextRun по расписанию"); - //// обновляем для групп у которых не включено автораспределение - //await UpdateNextRunWithEsppScheduleAsync(templateService, nextRunService, jobGroupService); - - //// для групп у которых включено автораспределение - //await UpdateNextRunWithAutodistributeScheduleAsync(templateService, nextRunService, jobGroupService); - await UpdateNextRunAsync(templateService, nextRunService, jobGroupService); logger.LogInformation($"Завершено обновление полей NextRun.");