Files
raven/server/AyaNova/generator/CoreJobReportRenderEngineProcessCleanup.cs
2021-12-27 22:01:29 +00:00

43 lines
1.5 KiB
C#

using System;
using Microsoft.Extensions.Logging;
using AyaNova.Util;
using System.Threading.Tasks;
namespace AyaNova.Biz
{
/// <summary>
/// called by Generator to kill report generation processor stuck in limbo (chromium at this time)
/// </summary>
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, 1, 1);//every this minutes run the cleanup task
////////////////////////////////////////////////////////////////////////////////////////////////
//
//
public static async Task DoWork()
{
if (DateUtil.IsAfterDuration(_lastRun, tsRunEvery))
{
log.LogDebug("Checking for expired processes");
await Util.ReportRenderManager.KillExpiredRenders(log);
//FileUtil.CleanTemporaryFilesFolder(new TimeSpan(0,5,0));//erase any files found to be older than 5 minutes
var now = DateTime.UtcNow;
_lastRun = now;
}
}
/////////////////////////////////////////////////////////////////////
}//eoc
}//eons