From 7a9d69ecf9b78d4005237e079e46d0989256e021 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 24 Dec 2021 01:09:54 +0000 Subject: [PATCH] --- .vscode/launch.json | 2 +- server/AyaNova/biz/ReportBiz.cs | 3 ++- .../generator/CoreJobReportRenderEngineProcessCleanup.cs | 3 ++- server/AyaNova/util/ReportProcessManager.cs | 5 +++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index ecafe7b2..c67f0642 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -48,7 +48,7 @@ "AYANOVA_DATA_PATH": "c:\\temp\\ravendata", "AYANOVA_USE_URLS": "http://*:7575;", "AYANOVA_SERVER_TEST_MODE": "false", - "AYANOVA_REPORT_RENDERING_TIMEOUT":"6", + "AYANOVA_REPORT_RENDERING_TIMEOUT":"5", "AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "large", "AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_14\\bin\\" }, diff --git a/server/AyaNova/biz/ReportBiz.cs b/server/AyaNova/biz/ReportBiz.cs index 99e632f6..aa2a9fe2 100644 --- a/server/AyaNova/biz/ReportBiz.cs +++ b/server/AyaNova/biz/ReportBiz.cs @@ -525,7 +525,8 @@ namespace AyaNova.Biz // log.LogInformation($"DBG: ReportBiz::launching browser now"); // #endif using (var browser = await Puppeteer.LaunchAsync(lo)) - using (var page = await browser.NewPageAsync()) + //using (var page = await browser.NewPageAsync()) + using (var page = (await browser.PagesAsync())[0]) { //track this process so it can be cancelled if it times out ReportRenderManager.AddProcess(browser.Process.Id, renderTimeOutExpiry, log); diff --git a/server/AyaNova/generator/CoreJobReportRenderEngineProcessCleanup.cs b/server/AyaNova/generator/CoreJobReportRenderEngineProcessCleanup.cs index b33b8b1d..84fc5094 100644 --- a/server/AyaNova/generator/CoreJobReportRenderEngineProcessCleanup.cs +++ b/server/AyaNova/generator/CoreJobReportRenderEngineProcessCleanup.cs @@ -13,7 +13,8 @@ namespace AyaNova.Biz private static ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger("CoreJobReportRenderEngineProcessCleanup"); private static DateTime _lastRun = DateTime.UtcNow; - private static TimeSpan tsRunEvery = new TimeSpan(0, 5, 1);//every this minutes run the cleanup task + //SET LOW INTENTIONALLY AS CAN EAT UP A LOT OF RESOURCES QUICKLY IF RUN'S PAST TIME + private static TimeSpan tsRunEvery = new TimeSpan(0, 1, 1);//every this minutes run the cleanup task //////////////////////////////////////////////////////////////////////////////////////////////// // diff --git a/server/AyaNova/util/ReportProcessManager.cs b/server/AyaNova/util/ReportProcessManager.cs index 1e2ad7e0..66478937 100644 --- a/server/AyaNova/util/ReportProcessManager.cs +++ b/server/AyaNova/util/ReportProcessManager.cs @@ -52,15 +52,16 @@ namespace AyaNova.Util internal static bool ForceCloseProcess(ReportRenderInstanceInfo instance, ILogger log) { - log.LogDebug($"ForceCloseProcess on report render instance id {instance.ReporterProcessId} exired {instance.Expires.ToString()} utc"); + log.LogDebug($"ForceCloseProcess on report render instance id {instance.ReporterProcessId} expired {instance.Expires.ToString()} utc"); try { var p = Process.GetProcessById(instance.ReporterProcessId); + if (p != null) { //we have an existing process //try to kill it - p.Kill(); + p.Kill(true); if (p.HasExited == false) { log.LogDebug($"Expired report render instance id {instance.ReporterProcessId} could not be force closed");