CQRS.NET  4.0
A lightweight enterprise Function as a Service (FaaS) framework to write function based serverless and micro-service applications in hybrid multi-datacentre, on-premise and Azure environments.
Cqrs.Bus.QueuedCommandBusReceiver< TAuthenticationToken > Class Template Referenceabstract

Receives instances of a ICommand<TAuthenticationToken> from the command bus, places them into one of several internal concurrent queues and then processes the commands one at a time per queue. More...

+ Inheritance diagram for Cqrs.Bus.QueuedCommandBusReceiver< TAuthenticationToken >:

Public Member Functions

virtual ? bool ReceiveCommand (ICommand< TAuthenticationToken > command)
 Receives a ICommand<TAuthenticationToken> from the command bus. More...
 
abstract void Start ()
 Starts listening and processing instances of ICommand<TAuthenticationToken> from the command bus. More...
 

Protected Member Functions

 QueuedCommandBusReceiver (IAuthenticationTokenHelper< TAuthenticationToken > authenticationTokenHelper, ICorrelationIdHelper correlationIdHelper, ILogger logger, IConfigurationManager configurationManager, IBusHelper busHelper)
 Instantiates a new instance of QueuedCommandBusReceiver<TAuthenticationToken>. More...
 
virtual void EnqueueCommand (string targetQueueName, ICommand< TAuthenticationToken > command)
 Places the provided command into the appropriate queue in the QueueTracker. More...
 
virtual void CreateQueueAndAttachListenerIfNotExist (string queueName)
 Checks if the queue exists, if it doesn't it creates a new queue in QueueTracker and then starts a separate Thread running DequeuAndProcessCommand. More...
 
virtual void DequeuAndProcessCommand (string queueName)
 Infinitely runs a loop checking if the queue exists in QueueTracker and then dequeues ICommand<TAuthenticationToken> one at a time, pausing for 0.1 seconds between loops. More...
 

Properties

static ConcurrentDictionary< string, ConcurrentQueue< ICommand< TAuthenticationToken > > > QueueTracker [get]
 The queues keyed by an identifier. More...
 
ReaderWriterLockSlim QueueTrackerLock [get]
 A ReaderWriterLockSlim for providing a lock mechanism around the main QueueTracker. More...
 
IAuthenticationTokenHelper< TAuthenticationToken > AuthenticationTokenHelper [get]
 Gets or sets the IAuthenticationTokenHelper<TAuthenticationToken> More...
 
ICorrelationIdHelper CorrelationIdHelper [get]
 Gets or sets the ICorrelationIdHelper More...
 
ILogger Logger [get]
 Gets or sets the ILogger More...
 
IConfigurationManager ConfigurationManager [get]
 Gets or sets the IConfigurationManager More...
 
IBusHelper BusHelper [get]
 Gets or sets the IBusHelper More...
 
abstract IDictionary< Type, IList< Action< IMessage > > > Routes [get]
 Gets or sets the routes or handlers that will be executed as the commands arrive. More...
 
int QueueCount [get]
 The current number of queues in QueueTracker. More...
 
ICollection< string > QueueNames [get]
 Gets the names of all queues in QueueTracker. More...
 

Detailed Description

Receives instances of a ICommand<TAuthenticationToken> from the command bus, places them into one of several internal concurrent queues and then processes the commands one at a time per queue.

Template Parameters
TAuthenticationTokenThe Type of authentication token.