Example #1
0
 public BatchSubscriptionHost(
     IObservableConnection connection,
     IRabbitMessageHandler <IEnumerable <T> > handler,
     IBatchSubscriptionConfig config, ILogger logger
     //            ,
     //            IEnumerable<IBatchRabbitMessageInterceptor<T>> interceptors
     )
 {
     logger.InfoFormat("Subscribing handler: {0} with Id {1}", config.Name, config.Id);
     Subscription = connection.SubscribeOnQueueToMessage(config, handler);
 }
Example #2
0
 public static IDisposable SubscribeOnQueueToMessage <T>(this IObservableConnection connection, IBatchSubscriptionConfig config, IRabbitMessageHandler <IEnumerable <T> > handler)
 {
     return(SubscribeWithAck(connection.Queue(config.QueueName)
                             .Open()
                             .Stream <T>()
                             .Buffer(config.BufferTimeout, config.BufferSize)
                             .Where(m => m.Any())
                             .Select(l => l.AsEnumerable()), l =>
     {
         var rabbitMessages = l.ToArray();
         handler.Handle(rabbitMessages.Select(m => m.Message));
     }));
 }