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);
        }
Ejemplo n.º 2
0
 public ProbeUpdateException(ProbeKind probeKind, string message, Exception innerException)
     : base(message, innerException)
 {
     ProbeKind = probeKind;
 }