public Task RegisterMemberAsync( Cluster cluster, string clusterName, string host, int port, string[] kinds, IMemberStatusValue statusValue, IMemberStatusValueSerializer serializer ) { var props = Props.FromFunc( ctx => { if (ctx.Message is GetKinds && ctx.Sender != null) { ctx.Respond(new GetKindsResponse { Kinds = { _kinds } }); } return(Actor.Done); } ); cluster.Remote.Serialization.RegisterFileDescriptor(ProtosReflection.Descriptor); cluster.Remote.RegisterKnownKind(KindsResponder, props); _kinds = kinds; _okStatus = serializer.Deserialize("Ok!"); _koStatus = serializer.Deserialize("Ko!"); _isServer = host == _serverHost && port == _serverPort; return(Actor.Done); }
public Task RegisterMemberAsync(Cluster cluster, string clusterName, string address, int port, string[] kinds, IMemberStatusValue statusValue, IMemberStatusValueSerializer statusValueSerializer ) { var props = Props .FromProducer(() => new ConsulClusterMonitor(cluster.System, _options, _consulConfig)) .WithGuardianSupervisorStrategy(Supervision.AlwaysRestartStrategy) .WithDispatcher(Mailbox.Dispatchers.SynchronousDispatcher); _clusterMonitor = cluster.System.Root.SpawnNamed(props, "ClusterMonitor"); cluster.System.Root.Send( _clusterMonitor, new Messages.RegisterMember { ClusterName = clusterName, Address = address, Port = port, Kinds = kinds, StatusValue = statusValue, StatusValueSerializer = statusValueSerializer } ); return(Actor.Done); }
private async Task Register(RegisterMember cmd, ISpawnerContext context) { _id = $"{cmd.ClusterName}@{cmd.Address}:{cmd.Port}"; _clusterName = cmd.ClusterName; _address = cmd.Address; _port = cmd.Port; _kinds = cmd.Kinds; _statusValueSerializer = cmd.StatusValueSerializer; await RegisterService(cmd.StatusValue, context); }
public async Task RegisterMemberAsync(string clusterName, string address, int port, string[] kinds, IMemberStatusValue statusValue, IMemberStatusValueSerializer statusValueSerializer) { _id = $"{clusterName}@{address}:{port}"; _clusterName = clusterName; _address = address; _port = port; _kinds = kinds; _index = 0; _statusValue = statusValue; _statusValueSerializer = statusValueSerializer; await RegisterServiceAsync(); await RegisterMemberValsAsync(); UpdateTtl(); }
public ClusterConfig WithMemberStatusValueSerializer(IMemberStatusValueSerializer serializer) { MemberStatusValueSerializer = serializer; return(this); }
public Task RegisterMemberAsync(string clusterName, string host, int port, string[] kinds, IMemberStatusValue statusValue, IMemberStatusValueSerializer serializer) { _kinds = kinds; _okStatus = serializer.FromValueBytes(Encoding.UTF8.GetBytes("Ok!")); _koStatus = serializer.FromValueBytes(Encoding.UTF8.GetBytes("Ko!")); _isServer = host == _serverHost && port == _serverPort; return(Actor.Done); }
public Task RegisterMemberAsync(string clusterName, string h, int p, string[] kinds, IMemberStatusValue statusValue, IMemberStatusValueSerializer serializer) { return(Task.FromResult(0)); }