private void Init()
{
try
{
using (var redis = ClientsManager.GetReadOnlyClient())
{
startedAt = Stopwatch.StartNew();
serverTimeAtStart = IsSentinelSubscription
? DateTime.UtcNow
: redis.GetServerTime();
}
}
catch (Exception ex)
{
if (OnError != null)
OnError(ex);
}
DisposeHeartbeatTimer();
if (HeartbeatInterval != null)
{
heartbeatTimer = new Timer(SendHeartbeat, null,
TimeSpan.FromMilliseconds(0), HeartbeatInterval.Value);
}
Interlocked.CompareExchange(ref lastHeartbeatTicks, DateTime.UtcNow.Ticks, lastHeartbeatTicks);
if (OnInit != null)
OnInit();
}