private void CreateModuleIfNeeded(string queueNameReceive, string queueNameResponse, ConsumerQueueTypes type) { if (!_queues.ContainsKey(queueNameReceive)) { var connection = ConfigurationManager.AppSettings["Connection"]; switch (type) { case ConsumerQueueTypes.Poco: _queues.Add(queueNameReceive, _queueContainer.Value.CreateRpc <SimpleResponse, SimpleMessage, PostgreSqlRpcConnection>( new PostgreSqlRpcConnection(connection, queueNameReceive, connection, queueNameResponse))); break; case ConsumerQueueTypes.Method: _queues.Add(queueNameReceive, _queueContainer.Value.CreateMethodRpc( new PostgreSqlRpcConnection(connection, queueNameReceive, connection, queueNameResponse))); break; } QueueStatus?.AddStatusProvider(QueueStatusContainer.Value.CreateStatusProvider <PostgreSqlMessageQueueInit>(queueNameReceive, connection)); QueueStatus?.AddStatusProvider(QueueStatusContainer.Value.CreateStatusProvider <PostgreSqlMessageQueueInit>(queueNameResponse, connection)); } }
protected void CreateModuleIfNeeded(string queueName, ConsumerQueueTypes type) { if (Queues.ContainsKey(queueName)) { return; } switch (type) { case ConsumerQueueTypes.Poco: Queues.Add(queueName, _queueContainer.Value.CreateConsumer(queueName, ConfigurationManager.AppSettings["Connection"])); break; case ConsumerQueueTypes.Method: Queues.Add(queueName, _queueContainer.Value.CreateMethodConsumer(queueName, ConfigurationManager.AppSettings["Connection"])); break; } QueueStatus?.AddStatusProvider( QueueStatusContainer.Value.CreateStatusProvider <TTransportInit>(queueName, ConfigurationManager.AppSettings["Connection"])); }
protected void CreateModuleIfNeeded(string queueName, ConsumerQueueTypes type = ConsumerQueueTypes.Poco, string workGroupName = null, int concurrencyLevel = 0, int maxQueueSize = 0) { if (_taskScheduler == null) { _taskScheduler = _schedulerContainer.Value.CreateTaskScheduler(); _taskFactory = _schedulerContainer.Value.CreateTaskFactory(_taskScheduler); } if (!string.IsNullOrWhiteSpace(queueName) && !Queues.ContainsKey(queueName)) { IConsumerBaseQueue queue = null; if (workGroupName != null) { if (!_taskScheduler.Started) { _taskScheduler.Start(); } var group = _taskScheduler.AddWorkGroup(workGroupName, concurrencyLevel, maxQueueSize); switch (type) { case ConsumerQueueTypes.Poco: queue = _queueContainer.Value.CreateConsumerQueueScheduler(queueName, ConfigurationManager.AppSettings["Connection"], _taskFactory, group); break; case ConsumerQueueTypes.Method: queue = _queueContainer.Value.CreateConsumerMethodQueueScheduler(queueName, ConfigurationManager.AppSettings["Connection"], _taskFactory, group); break; } } else { switch (type) { case ConsumerQueueTypes.Poco: queue = _queueContainer.Value.CreateConsumerQueueScheduler(queueName, ConfigurationManager.AppSettings["Connection"], _taskFactory); break; case ConsumerQueueTypes.Method: queue = _queueContainer.Value.CreateConsumerMethodQueueScheduler(queueName, ConfigurationManager.AppSettings["Connection"], _taskFactory); break; } } Queues.Add(queueName, queue); QueueStatus?.AddStatusProvider( QueueStatusContainer.Value.CreateStatusProvider <TTransportInit>(queueName, ConfigurationManager.AppSettings["Connection"])); } }
private void CreateModuleIfNeeded(string queueName, ConsumerQueueTypes type) { if (!_queues.ContainsKey(queueName)) { switch (type) { case ConsumerQueueTypes.Poco: _queues.Add(queueName, _queueContainer.Value.CreateProducer <SimpleMessage>(queueName, ConfigurationManager.AppSettings["Connection"])); break; case ConsumerQueueTypes.Method: _queues.Add(queueName, _queueContainer.Value.CreateMethodProducer(queueName, ConfigurationManager.AppSettings["Connection"])); break; } QueueStatus?.AddStatusProvider(QueueStatusContainer.Value.CreateStatusProvider <SqlServerMessageQueueInit>(queueName, ConfigurationManager.AppSettings["Connection"])); } }