using System; using Microsoft.Extensions.Logging; using AyaNova.Util; using System.Threading.Tasks; namespace AyaNova.Biz { /// /// called by Generator to kill report generation processor stuck in limbo (chromium at this time) /// internal static class CoreJobReportRenderEngineProcessCleanup { private static ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger("CoreJobReportRenderEngineProcessCleanup"); private static DateTime _lastRun = DateTime.UtcNow; //SET LOW INTENTIONALLY AS CAN EAT UP A LOT OF RESOURCES QUICKLY IF RUN'S PAST TIME private static TimeSpan tsRunEvery = new TimeSpan(0, 0, 20);//every twenty seconds run the cleanup task //////////////////////////////////////////////////////////////////////////////////////////////// // // public static async Task DoWork() { if (DateUtil.IsAfterDuration(_lastRun, tsRunEvery)) { log.LogTrace("Checking for expired report jobs"); await Util.ReportRenderManager.KillExpiredRenders(log); var now = DateTime.UtcNow; _lastRun = now; } } ///////////////////////////////////////////////////////////////////// }//eoc }//eons