From f27723ccba42313064afc1b691334cb166880652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SAL=C4=B0H=20=C3=96ZKARA?= Date: Mon, 8 Dec 2025 15:46:07 +0300 Subject: [PATCH 1/2] Ensure telemetry tasks complete on process exit Registers a handler for AppDomain.ProcessExit to wait up to 10 seconds for the telemetry task to finish, improving reliability of telemetry data submission during application shutdown. --- .../Abp/Internal/Telemetry/TelemetryService.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Internal/Telemetry/TelemetryService.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Internal/Telemetry/TelemetryService.cs index 2f684acd29..7c54bbd48f 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Internal/Telemetry/TelemetryService.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Internal/Telemetry/TelemetryService.cs @@ -67,7 +67,7 @@ public class TelemetryService : ITelemetryService, IScopedDependency private Task AddActivityAsync(ActivityContext context) { - _ = Task.Run(async () => + var telemetryTask = Task.Run(async () => { using var scope = _serviceScopeFactory.CreateScope(); @@ -81,6 +81,18 @@ public class TelemetryService : ITelemetryService, IScopedDependency telemetryActivitySender); }); + AppDomain.CurrentDomain.ProcessExit += (_, _) => + { + try + { + telemetryTask.Wait(TimeSpan.FromSeconds(10)); + } + catch + { + // ignored + } + }; + return Task.CompletedTask; } From e886d4af90c74add73f814b2ef15b0b21d6c7381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SAL=C4=B0H=20=C3=96ZKARA?= Date: Tue, 9 Dec 2025 13:29:58 +0300 Subject: [PATCH 2/2] Handle CancelKeyPress for telemetry task shutdown Added a handler for Console.CancelKeyPress to wait up to 10 seconds for the telemetryTask to complete, improving graceful shutdown of telemetry operations. --- .../Volo/Abp/Internal/Telemetry/TelemetryService.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Internal/Telemetry/TelemetryService.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Internal/Telemetry/TelemetryService.cs index 7c54bbd48f..4f8f77b245 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Internal/Telemetry/TelemetryService.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Internal/Telemetry/TelemetryService.cs @@ -92,6 +92,18 @@ public class TelemetryService : ITelemetryService, IScopedDependency // ignored } }; + + Console.CancelKeyPress += (_, _) => + { + try + { + telemetryTask.Wait(TimeSpan.FromSeconds(10)); + } + catch + { + // ignored + } + }; return Task.CompletedTask; }