/// <summary> /// Create a work item queue that will try to pull items from a named RabbitMQ endpoint /// </summary> /// <param name="endpoint">Destination endpoint to pull messages from</param> /// <param name="messagingBase">RabbitMQ connection provider</param> /// <param name="sleeper">Sleeper to rate limit polling</param> public RabbitMqPollingNode(IRoutingEndpoint endpoint, IMessagingBase messagingBase, ISleepWrapper sleeper) { _endpoint = endpoint.ToString(); _messagingBase = messagingBase; _sleeper = sleeper; _boundMessageTypes = new ConcurrentSet<Type>(); }
public void setup() { _endpoint = Substitute.For<IRoutingEndpoint>(); _messagingBase = Substitute.For<IMessagingBase>(); _sleepWrapper = Substitute.For<ISleepWrapper>(); _endpoint.ToString().Returns(_destinationName); _subject = new RabbitMqPollingNode(_endpoint, _messagingBase, _sleepWrapper); }
/// <summary> /// Create a worker queue for the named endpoint. /// <para>endpoint names are ignored for local queues</para> /// </summary> public ITypedPollingNode Create(IRoutingEndpoint endpoint) { return new LocalQueuePollingNode(_dispatchPath, _incomingPath, _serialiser, _sleeper); }
/// <summary> /// Create a Messaging Base driven polling work queue /// </summary> public ITypedPollingNode Create(IRoutingEndpoint endpoint) { return new RabbitMqPollingNode(endpoint, _messagingBase, _sleeper); }