Files
raven/server/AyaNova/generator/CoreJobTempFolderCleanup.cs
2022-03-08 22:38:03 +00:00

57 lines
1.7 KiB
C#

using System;
using Microsoft.Extensions.Logging;
using AyaNova.Util;
namespace AyaNova.Biz
{
/// <summary>
/// called by Generator to keep temp folder squeaky clean
/// </summary>
internal static class CoreJobTempFolderCleanup
{
private static ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger("CoreJobTempFolderCleanup");
private static DateTime _lastRun = DateTime.UtcNow;
#if (DEBUG)
private static TimeSpan RUN_EVERY_INTERVAL = new TimeSpan(0, 0, 21);//no more frequently than once every 20 seconds
#else
private static TimeSpan RUN_EVERY_INTERVAL = new TimeSpan(0, 5, 2);//no more frequently than once every 5 minutes
#endif
// private static TimeSpan tsRunEvery = new TimeSpan(0, 5, 2);//every this minutes run the cleanup task
//erase any files found to be older than 15 minutes (which coincides with max report rendering timeout)
#if (DEBUG)
private static TimeSpan DELETE_IF_OLDER_THAN = new TimeSpan(0, 2, 1);//2 minutes max
#else
private static TimeSpan DELETE_IF_OLDER_THAN = new TimeSpan(0, 15, 1);
#endif
////////////////////////////////////////////////////////////////////////////////////////////////
//
//
public static void DoWork()
{
if (DateUtil.IsAfterDuration(_lastRun, RUN_EVERY_INTERVAL))
{
log.LogDebug("Temp cleanup now");
FileUtil.CleanTemporaryFilesFolder(DELETE_IF_OLDER_THAN);
var now = DateTime.UtcNow;
_lastRun = now;
}
}
/////////////////////////////////////////////////////////////////////
}//eoc
}//eons