public void SendLeaderIsResigning(ElectionMessage.LeaderIsResigning resigning, EndPoint destinationEndpoint,
                                   DateTime deadline)
 {
     SendLeaderIsResigningAsync(resigning.LeaderId, resigning.LeaderHttpEndPoint, deadline).ContinueWith(r => {
         if (r.Exception != null)
         {
             Log.Information(r.Exception, "Leader is Resigning Send Failed to {Server}", destinationEndpoint);
         }
     });
 }
Example #2
0
        public void Handle(ElectionMessage.LeaderIsResigning message)
        {
            Log.Information("ELECTIONS: LEADER IS RESIGNING [{leaderHttpEndPoint}, {leaderId:B}].",
                            message.LeaderHttpEndPoint, message.LeaderId);
            var leaderIsResigningMessageOk = new ElectionMessage.LeaderIsResigningOk(
                message.LeaderId,
                message.LeaderHttpEndPoint,
                _memberInfo.InstanceId,
                _memberInfo.HttpEndPoint);

            _resigningLeaderInstanceId = message.LeaderId;
            _publisher.Publish(new GrpcMessage.SendOverGrpc(message.LeaderHttpEndPoint, leaderIsResigningMessageOk,
                                                            _timeProvider.LocalTime.Add(LeaderElectionProgressTimeout)));
        }
Example #3
0
        public void Send(ElectionMessage.LeaderIsResigning message, IPEndPoint endPoint)
        {
            Ensure.NotNull(message, nameof(message));
            Ensure.NotNull(endPoint, nameof(endPoint));

            _client.Post(endPoint.ToHttpUrl(EndpointExtensions.HTTP_SCHEMA, "/elections/leaderisresigning"),
                         Codec.Json.To(new ElectionMessageDto.LeaderIsResigningDto(message)),
                         Codec.Json.ContentType,
                         r => {
                /*ignore*/
            },
                         e => {
                /*Log.ErrorException(e, "Error occured while writing request (elections/leadz    erisresigning)")*/
            });
        }
        public void Handle(ElectionMessage.LeaderIsResigning message)
        {
            if (_nodeInfo.IsReadOnlyReplica)
            {
                Log.Information(
                    "ELECTIONS: THIS NODE IS A READ ONLY REPLICA. IT IS NOT ALLOWED TO VOTE AND THEREFORE NOT ALLOWED TO ACKNOWLEDGE LEADER RESIGNATION.");
                return;
            }

            Log.Information("ELECTIONS: LEADER IS RESIGNING [{leaderInternalHttp}, {leaderId:B}].",
                            message.LeaderInternalHttp, message.LeaderId);
            var leaderIsResigningMessageOk = new ElectionMessage.LeaderIsResigningOk(
                message.LeaderId,
                message.LeaderInternalHttp,
                _nodeInfo.InstanceId,
                _nodeInfo.InternalHttp);

            _resigningLeaderInstanceId = message.LeaderId;
            _publisher.Publish(new GrpcMessage.SendOverGrpc(message.LeaderInternalHttp, leaderIsResigningMessageOk,
                                                            _timeProvider.LocalTime.Add(LeaderElectionProgressTimeout)));
        }