Files
Disco/Disco.Services/Users/CacheCleanTask.cs
2016-09-28 21:20:18 +10:00

39 lines
1.2 KiB
C#

using Disco.Data.Repository;
using Disco.Services.Tasks;
using Quartz;
using System;
namespace Disco.Services.Users
{
public class CacheCleanTask : ScheduledTask
{
public override string TaskName { get { return "User Cache - Clean Stale Cache"; } }
public override bool SingleInstanceTask { get { return true; } }
public override bool CancelInitiallySupported { get { return false; } }
public override bool LogExceptionsOnly { get { return true; } }
public override void InitalizeScheduledTask(DiscoDataContext Database)
{
// Run @ every 15mins
// Next 15min interval
var now = DateTime.Now;
var mins = (15 - (now.Minute % 15));
if (mins < 10)
mins += 15;
var startAt = new DateTimeOffset(now).AddMinutes(mins).AddSeconds(now.Second * -1).AddMilliseconds(now.Millisecond * -1);
var triggerBuilder = TriggerBuilder.Create().StartAt(startAt).
WithSchedule(SimpleScheduleBuilder.RepeatMinutelyForever(15));
ScheduleTask(triggerBuilder);
}
protected override void ExecuteTask()
{
Cache.CleanStaleCache();
}
}
}