/// <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)); }
/// <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)); }