From a74032eed59b4b0c68b2e5b123e87d5152b75fdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A4=D1=80=D0=BE=D0=BB=D0=BE=D0=B2?= Date: Tue, 23 Nov 2021 16:12:41 +0500 Subject: [PATCH] Fix TelemetryTracker dbContext disposing. --- .../Services/TelemetryTracker.cs | 14 ++++++++------ .../Controllers/OperationStatController.cs | 3 --- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/AsbCloudInfrastructure/Services/TelemetryTracker.cs b/AsbCloudInfrastructure/Services/TelemetryTracker.cs index fdab89e8..349a0667 100644 --- a/AsbCloudInfrastructure/Services/TelemetryTracker.cs +++ b/AsbCloudInfrastructure/Services/TelemetryTracker.cs @@ -44,7 +44,7 @@ namespace AsbCloudInfrastructure.Services var options = new DbContextOptionsBuilder() .UseNpgsql(configuration.GetConnectionString("DefaultConnection")) .Options; - using var db = new AsbCloudDbContext(options); + var db = new AsbCloudDbContext(options); var cacheTelemetry = cacheDb.GetCachedTable(db); var keyValuePairs = new Dictionary(cacheTelemetry.Count()); @@ -65,7 +65,7 @@ namespace AsbCloudInfrastructure.Services Task.Run(async () => { - db.Database.SetCommandTimeout(2 * 60); + db.Database.SetCommandTimeout(2 * 60); var dates = await db.TelemetryDataSaub .GroupBy(d => d.IdTelemetry) .Select(g => new @@ -77,9 +77,7 @@ namespace AsbCloudInfrastructure.Services .AsNoTracking() .ToListAsync() .ConfigureAwait(false); - - db.Dispose(); - + var oldReqs = dates.Select(t => new { Uid = cacheTelemetry.FirstOrDefault(c => c.Id == t.IdTelemetry)?.RemoteUid, @@ -91,9 +89,13 @@ namespace AsbCloudInfrastructure.Services { var telemetryStat = telemetriesStats.GetOrAdd(oldReq.Uid, (uid) => new TrackerStat { RemoteUid = uid }); telemetryStat.TelemetryDateMin = oldReq.DateMin; - telemetryStat.TelemetryDateMax = oldReq.DateMax; + telemetryStat.TelemetryDateMax = oldReq.DateMax; telemetryStat.LastTimeServer = oldReq.DateMax; } + }).ContinueWith((t) => + { + db.Dispose(); + return t; }); } diff --git a/AsbCloudWebApi/Controllers/OperationStatController.cs b/AsbCloudWebApi/Controllers/OperationStatController.cs index 12edf1aa..cece035b 100644 --- a/AsbCloudWebApi/Controllers/OperationStatController.cs +++ b/AsbCloudWebApi/Controllers/OperationStatController.cs @@ -58,9 +58,6 @@ namespace AsbCloudWebApi.Controllers public async Task GetClusterRopStatByUidAsync([FromRoute] string uid, CancellationToken token = default) { - // if (!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false)) - // return Forbid(); - var result = await operationsStatService.GetRopStatByUidAsync( uid, token).ConfigureAwait(false);