Ejemplo n.º 1
0
        /// <summary>
        /// Setup round-robin distribution rules for Publish operations
        /// </summary>
        /// <typeparam name="TPayload"></typeparam>
        /// <param name="messageBus"></param>
        /// <param name="inTopics"></param>
        /// <param name="outTopics"></param>
        /// <returns></returns>
        public static IDisposable SetupPublishDistribution <TPayload>(this IPubSubBus messageBus, string[] inTopics, IEnumerable <string> outTopics)
        {
            Assert.ArgumentNotNull(messageBus, nameof(messageBus));
            var rule = new RoundRobinDistributeRule <TPayload>(outTopics);

            return(messageBus.PublishRouter.AddPublishRouteRule(inTopics, rule));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Setup round-robin distribution rules for Request/Response channels
        /// </summary>
        /// <typeparam name="TRequest"></typeparam>
        /// <typeparam name="TResponse"></typeparam>
        /// <param name="messageBus"></param>
        /// <param name="inTopics"></param>
        /// <param name="outTopics"></param>
        /// <returns></returns>
        public static IDisposable SetupRequestDistribution <TRequest, TResponse>(this IReqResBus messageBus, string inTopics, IEnumerable <string> outTopics)
        {
            Assert.ArgumentNotNull(messageBus, nameof(messageBus));
            var rule = new RoundRobinDistributeRule <TRequest>(outTopics);

            return(messageBus.RequestRouter.AddRequestRouteRule <TRequest, TResponse>(inTopics, rule));
        }