Files
Saxonite/SaxoniteCoreWebOnline/Online/Consoles/SaxDataCacheConsole_Online.cs
T
2021-05-22 13:44:34 +01:00

63 lines
2.0 KiB
C#

using Sarand.Net.Standard.Base.App;
using Saxonite.Net.Core.Web.Base.Consoles;
using Saxonite.Net.Standard.Base.App;
using Saxonite.Net.Standard.Base.Consoles;
using System;
using System.Collections.Generic;
using System.Text;
namespace Saxonite.Net.Core.Web.Online.Consoles
{
//=======================================================================
public class SaxDataCacheConsole_Online : SaxDataCacheConsole_Web
{
//-------------------------------------------------------------------
private System.Timers.Timer refreshTimer;
//-------------------------------------------------------------------
public SaxDataCacheConsole_Online(SaxSessionContext sessionContext) :
base(sessionContext)
{
String fn = GetType().Name + ".CTR";
RegionsSupported = true;
SportsSupported = true;
// Initialise refresh timer.
refreshTimer = new System.Timers.Timer(Math.Max(2, Sax.Config.Online.DataCache.RefreshIntervalSecs.Initial) * 1000);
refreshTimer.Elapsed += RefreshTimer_Elapsed;
refreshTimer.Start();
SaLogger.Info(fn + " Refresh timer initialised. Interval: " + refreshTimer.Interval, true);
}
//-------------------------------------------------------------------
// Utilities.
protected override void ForceRefresh()
{
String fn = GetType().Name + ".ForceRefresh";
SaLogger.Warn(fn + " Refresh timer initialised", true);
RefreshData();
}
//-------------------------------------------------------------------
// Refresh data cache.
private void RefreshTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
refreshTimer.Stop();
RefreshData();
}
private void RefreshData()
{
refreshTimer.Stop();
if (RegionsSupported) RefreshRegions();
if (SportsSupported) RefreshSports();
refreshTimer.Interval = Math.Max(10, Sax.Config.Online.DataCache.RefreshIntervalSecs.Periodic) * 1000;
refreshTimer.Start();
}
//-------------------------------------------------------------------
}
//=======================================================================
}