39 lines
1.2 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|