From 84dfa183d79ed93dccfa0dd9545dff50a72c0168 Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Mon, 5 Dec 2022 10:53:24 +0500 Subject: [PATCH 1/2] Decrease TelemetryDataCache size. --- AsbCloudDb/Model/AsbCloudDbContext.cs | 2 +- AsbCloudInfrastructure/Background/BackgroundWorker.cs | 5 +---- AsbCloudInfrastructure/Services/SAUB/TelemetryDataCache.cs | 2 +- AsbCloudInfrastructure/Startup.cs | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 97df2748..8354d87f 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -61,7 +61,7 @@ namespace AsbCloudDb.Model public DbSet Record60 => Set(); public DbSet Record61 => Set(); - public int ReferenceCount { get; private set; } + public static int ReferenceCount { get; private set; } public AsbCloudDbContext() : base() { diff --git a/AsbCloudInfrastructure/Background/BackgroundWorker.cs b/AsbCloudInfrastructure/Background/BackgroundWorker.cs index 531d775e..9453e6a9 100644 --- a/AsbCloudInfrastructure/Background/BackgroundWorker.cs +++ b/AsbCloudInfrastructure/Background/BackgroundWorker.cs @@ -1,7 +1,4 @@ -using AsbCloudInfrastructure.Services.DetectOperations; -using AsbCloudInfrastructure.Services.Subsystems; -using AsbCloudInfrastructure.Services; -using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System; using System.Diagnostics; diff --git a/AsbCloudInfrastructure/Services/SAUB/TelemetryDataCache.cs b/AsbCloudInfrastructure/Services/SAUB/TelemetryDataCache.cs index af2d471a..00c583c1 100644 --- a/AsbCloudInfrastructure/Services/SAUB/TelemetryDataCache.cs +++ b/AsbCloudInfrastructure/Services/SAUB/TelemetryDataCache.cs @@ -14,7 +14,7 @@ namespace AsbCloudInfrastructure.Services.SAUB public class TelemetryDataCache where TDto : AsbCloudApp.Data.ITelemetryData { - private const int activeWellCapacity = 24 * 60 * 60; + private const int activeWellCapacity = 12 * 60 * 60; private const int doneWellCapacity = 65 * 60; private readonly ConcurrentDictionary> caches; diff --git a/AsbCloudInfrastructure/Startup.cs b/AsbCloudInfrastructure/Startup.cs index 09e92644..36a85cc1 100644 --- a/AsbCloudInfrastructure/Startup.cs +++ b/AsbCloudInfrastructure/Startup.cs @@ -43,7 +43,7 @@ namespace AsbCloudInfrastructure var workAction = (string _, IServiceProvider _, CancellationToken _) => { var bytes = GC.GetTotalMemory(false); var bytesString = FromatBytes(bytes); - System.Diagnostics.Trace.TraceInformation($"Total memory allocated is {bytesString} bytes"); + System.Diagnostics.Trace.TraceInformation($"Total memory allocated is {bytesString} bytes. DbContext count is:{AsbCloudDb.Model.AsbCloudDbContext.ReferenceCount}"); return Task.CompletedTask; }; var workPeriod = TimeSpan.FromMinutes(1); From 29d4121440bb878023ffc25ef1be39b71690a288 Mon Sep 17 00:00:00 2001 From: "ai.astrakhantsev" Date: Tue, 6 Dec 2022 10:03:24 +0500 Subject: [PATCH 2/2] =?UTF-8?q?=D0=9F=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=81=D0=BF=D0=B8=D1=81=D0=BA=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=BE=D0=B3=D1=80=D0=B0=D0=BD=D0=B8=D1=87=D0=B8=D0=B2=D0=B0?= =?UTF-8?q?=D1=8E=D1=89=D0=B8=D1=85=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=B2=20=D0=B8=20=D0=BF=D0=BE=D0=B4=D1=81?= =?UTF-8?q?=D0=B8=D1=81=D1=82=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/ILimitingParameterService.cs | 6 ++++++ .../Services/LimitingParameterService.cs | 7 ++++++- .../LimitingParameterController.cs | 12 +++++++++++ .../SubsystemOperationTimeController.cs | 20 ++++++++++++++++++- 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/AsbCloudApp/Services/ILimitingParameterService.cs b/AsbCloudApp/Services/ILimitingParameterService.cs index 3e82eba1..5f752a62 100644 --- a/AsbCloudApp/Services/ILimitingParameterService.cs +++ b/AsbCloudApp/Services/ILimitingParameterService.cs @@ -19,6 +19,12 @@ namespace AsbCloudApp.Services /// /// Task> GetStatAsync(LimitingParameterRequest request, CancellationToken token); + + /// + /// Получение списка ограничений + /// + /// + Dictionary GetLimitingParameteraNames(); } #nullable disable } diff --git a/AsbCloudInfrastructure/Services/LimitingParameterService.cs b/AsbCloudInfrastructure/Services/LimitingParameterService.cs index c50729f8..0a609507 100644 --- a/AsbCloudInfrastructure/Services/LimitingParameterService.cs +++ b/AsbCloudInfrastructure/Services/LimitingParameterService.cs @@ -15,7 +15,7 @@ namespace AsbCloudInfrastructure.Services { private readonly ILimitingParameterRepository limitingParameterRepository; private readonly IWellService wellService; - private readonly Dictionary feedRegulatorData = new Dictionary() + private readonly Dictionary feedRegulatorData = new () { { 0, "Нет ограничения" }, { 1, "МСП" }, @@ -63,6 +63,11 @@ namespace AsbCloudInfrastructure.Services return result; } + public Dictionary GetLimitingParameteraNames() //TODO: Перенести получение ограничений в репозиторий + { + return feedRegulatorData; + } + private IEnumerable TrimLimitingParameters(IEnumerable data, LimitingParameterRequest request) { var result = data.Select((x) => diff --git a/AsbCloudWebApi/Controllers/LimitingParameterController.cs b/AsbCloudWebApi/Controllers/LimitingParameterController.cs index 1df008e8..9bd5784d 100644 --- a/AsbCloudWebApi/Controllers/LimitingParameterController.cs +++ b/AsbCloudWebApi/Controllers/LimitingParameterController.cs @@ -40,6 +40,18 @@ namespace AsbCloudWebApi.Controllers return Ok(subsystemResult); } + /// + /// Получение словаря названий ограничений + /// + /// + [HttpGet("names")] + [ProducesResponseType(typeof(Dictionary), (int)System.Net.HttpStatusCode.OK)] + public IActionResult GetLimitingParameteraNames() + { + var feedRegulatorData = limitingParameterService.GetLimitingParameteraNames(); + return Ok(feedRegulatorData); + } + protected async Task UserHasAccesToWellAsync(int idWell, CancellationToken token) { var idCompany = User.GetCompanyId(); diff --git a/AsbCloudWebApi/Controllers/Subsystems/SubsystemOperationTimeController.cs b/AsbCloudWebApi/Controllers/Subsystems/SubsystemOperationTimeController.cs index e2b1a945..65f503ea 100644 --- a/AsbCloudWebApi/Controllers/Subsystems/SubsystemOperationTimeController.cs +++ b/AsbCloudWebApi/Controllers/Subsystems/SubsystemOperationTimeController.cs @@ -3,7 +3,6 @@ using AsbCloudApp.Requests; using AsbCloudApp.Services; using AsbCloudApp.Services.Subsystems; using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; using System.Threading; @@ -25,6 +24,14 @@ namespace AsbCloudWebApi.Controllers.Subsystems private readonly ISubsystemOperationTimeService subsystemOperationTimeService; private readonly IWellService wellService; private readonly ISubsystemService subsystemService; + + private readonly Dictionary subsystemNames = new() + { + { 1, "SAUB" }, + { 65537, "Torque Master" }, + { 65536, "Spin Master" } + }; + public SubsystemOperationTimeController(ISubsystemOperationTimeService subsystemOperationTimeService, IWellService wellService, ISubsystemService subsystemService) { this.subsystemOperationTimeService = subsystemOperationTimeService; @@ -131,6 +138,17 @@ namespace AsbCloudWebApi.Controllers.Subsystems return Ok(result); } + /// + /// Получение словаря названий подсистем + /// + /// + [HttpGet("names")] + [ProducesResponseType(typeof(Dictionary), (int)System.Net.HttpStatusCode.OK)] + public IActionResult GetSubsystemsNames() + { + return Ok(subsystemNames); + } + protected async Task UserHasAccesToWellAsync(int idWell, CancellationToken token) { var idCompany = User.GetCompanyId();