public static IActorRef StartTransportActor(ITransportSettings settings, ExtendedActorSystem system, ProbeKind probeKind, IActorRef probe, bool log) { if (settings is FileTransportSettings fileTransport) { switch (probeKind) { case ProbeKind.Liveness: return(system.ActorOf( Props.Create( () => new LivenessTransportActor(new FileStatusTransport(fileTransport), probe, log)), "liveness-transport" + ThreadLocalRandom.Current.Next())); case ProbeKind.Readiness: default: return(system.ActorOf( Props.Create( () => new ReadinessTransportActor(new FileStatusTransport(fileTransport), probe, log)), "readiness-transport" + ThreadLocalRandom.Current.Next())); } } if (settings is SocketTransportSettings socketTransport) { switch (probeKind) { case ProbeKind.Liveness: return(system.ActorOf( Props.Create( () => new LivenessTransportActor(new SocketStatusTransport(socketTransport), probe, log)), "liveness-transport" + ThreadLocalRandom.Current.Next())); case ProbeKind.Readiness: default: return(system.ActorOf( Props.Create( () => new ReadinessTransportActor(new SocketStatusTransport(socketTransport), probe, log)), "readiness-transport" + ThreadLocalRandom.Current.Next())); } } // means that we don't have an automatic transport setup return(ActorRefs.Nobody); }
public ProbeUpdateException(ProbeKind probeKind, string message, Exception innerException) : base(message, innerException) { ProbeKind = probeKind; }