ServiceStack.Redis.RedisPubSubServer.SendHeartbeat C# (CSharp) 메소드

SendHeartbeat() 개인적인 메소드

private SendHeartbeat ( object state ) : void
state object
리턴 void
        void SendHeartbeat(object state)
        {
            var currentStatus = Interlocked.CompareExchange(ref status, 0, 0);
            if (currentStatus != Status.Started)
                return;

            if (DateTime.UtcNow - new DateTime(lastHeartbeatTicks) < HeartbeatInterval.Value)
                return;

            if (OnHeartbeatSent != null)
                OnHeartbeatSent();

            NotifyAllSubscribers(ControlCommand.Pulse);

            if (DateTime.UtcNow - new DateTime(lastHeartbeatTicks) > HeartbeatTimeout)
            {
                currentStatus = Interlocked.CompareExchange(ref status, 0, 0);
                if (currentStatus == Status.Started)
                {
                    Restart();
                }
            }
        }