public MetricPublisher(IConnectionMultiplexer connectionMultiplexer, IMetricPayloadSerializer payloadSerializer, string keyName)
 {
     _subscriber        = connectionMultiplexer.GetSubscriber();
     _payloadSerializer = payloadSerializer;
     _channel           = new RedisChannel("akka.metrics.metricmailbox." + keyName,
                                           RedisChannel.PatternMode.Literal);
 }
Exemple #2
0
 public ObservableMetricSubscriber(
     IConnectionMultiplexer connectionMultiplexer,
     IMetricPayloadSerializer payloadSerializer, string keyName) : base(
         connectionMultiplexer, payloadSerializer, keyName)
 {
     ObservableSet =
         _subscriber.WhenMessageReceived(_channel, PayloadSerializer);
 }
Exemple #3
0
        public static IObservable <MailboxMetric> WhenMessageReceived(this ISubscriber subscriber, RedisChannel channel, IMetricPayloadSerializer payloadSerializer)
        {
            return(Observable.Create <MailboxMetric>(async(obs, ct) =>
            {
                await subscriber.SubscribeAsync(channel, (_, message) =>
                {
                    try
                    {
                        var set = payloadSerializer.GetObject(message);
                        foreach (var item in set.Set)
                        {
                            obs.OnNext(item);
                        }
                    }
                    catch (Exception e)
                    {
                    }
                }).ConfigureAwait(false);

                return Disposable.Create(() => subscriber.Unsubscribe(channel));
            }));
        }
Exemple #4
0
 protected BaseAsyncMetricSubscriber(IConnectionMultiplexer connectionMultiplexer, IMetricPayloadSerializer payloadSerializer, string keyName) : base(connectionMultiplexer, payloadSerializer, keyName)
 {
     _subscriber.Subscribe(_channel,
                           async(channel, message) =>
                           await HandlePublishEvent(channel, message));
 }
 public SseRedisAsyncMetricSubscriber(IMailboxEventService mailboxService, IConnectionMultiplexer connectionMultiplexer, IMetricPayloadSerializer payloadSerializer, string keyName) : base(connectionMultiplexer, payloadSerializer, keyName)
 {
     _mailboxService = mailboxService;
 }