public Subscription Subscribe <T>(SubscriptionOption <T> subscriptionOption) { TryConnectBeforeSubscribing(); Func <IModel, IBasicConsumer> createConsumer = channel => _consumerManager.CreateConsumer(channel, subscriptionOption.SubscriptionName, subscriptionOption.MessageHandler, subscriptionOption.BatchSize <= 0 ? (ushort)1 : subscriptionOption.BatchSize); var queueName = (subscriptionOption.RouteFinder ?? _routeFinder).FindQueueName <T>(subscriptionOption.SubscriptionName); var prefetchSize = GetProperPrefetchSize(subscriptionOption.QueuePrefetchSize); return(CreateSubscription(subscriptionOption.SubscriptionName, queueName, createConsumer, prefetchSize)); }
public void Subscribe <T>(string subscriptionName, Action <T> onReceiveMessage) { TryConnectBeforeSubscribing(); Func <IModel, string, IBasicConsumer> createConsumer = (channel, consumerTag) => _consumerManager.CreateConsumer(channel, subscriptionName, onReceiveMessage); CreateSubscription <T>(subscriptionName, createConsumer); }