63 lines
2.0 KiB
C#
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();
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|