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"]));
            }
        }
        protected void CreateModuleIfNeeded(QueueConnection queueConnection, 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(queueConnection.Queue) && !Queues.ContainsKey(queueConnection.Queue))
            {
                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(queueConnection, _taskFactory, group);
                        break;

                    case ConsumerQueueTypes.Method:
                        queue = _queueContainer.Value.CreateConsumerMethodQueueScheduler(queueConnection, _taskFactory, group);
                        break;
                    }
                }
                else
                {
                    switch (type)
                    {
                    case ConsumerQueueTypes.Poco:
                        queue = _queueContainer.Value.CreateConsumerQueueScheduler(queueConnection, _taskFactory);
                        break;

                    case ConsumerQueueTypes.Method:
                        queue = _queueContainer.Value.CreateConsumerMethodQueueScheduler(queueConnection, _taskFactory);
                        break;
                    }
                }

                Queues.Add(queueConnection.Queue, queue);
            }
        }
        private void CreateModuleIfNeeded(QueueConnection queue, ConsumerQueueTypes type)
        {
            if (!_queues.ContainsKey(queue.Queue))
            {
                switch (type)
                {
                case ConsumerQueueTypes.Poco:
                    _queues.Add(queue.Queue,
                                _queueContainer.Value.CreateProducer <SimpleMessage>(queue));
                    break;

                case ConsumerQueueTypes.Method:
                    _queues.Add(queue.Queue,
                                _queueContainer.Value.CreateMethodProducer(queue));
                    break;
                }
            }
        }
        private void CreateModuleIfNeeded(string queueName, ConsumerQueueTypes type)
        {
            if (!_queues.ContainsKey(queueName))
            {
                switch (type)
                {
                case ConsumerQueueTypes.Poco:
                    _queues.Add(queueName,
                                _queueContainer.Value.CreateProducer <SimpleMessage>(new QueueConnection(queueName,
                                                                                                         ConfigurationManager.AppSettings["Connection"])));
                    break;

                case ConsumerQueueTypes.Method:
                    _queues.Add(queueName,
                                _queueContainer.Value.CreateMethodProducer(new QueueConnection(queueName,
                                                                                               ConfigurationManager.AppSettings["Connection"])));
                    break;
                }
            }
        }
Beispiel #6
0
        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"]));
            }
        }
        protected void CreateModuleIfNeeded(string queueName, ConsumerQueueTypes type)
        {
            if (Queues.ContainsKey(queueName))
            {
                return;
            }

            switch (type)
            {
            case ConsumerQueueTypes.Poco:
                Queues.Add(queueName,
                           _queueContainer.Value.CreateConsumer(new QueueConnection(queueName,
                                                                                    ConfigurationManager.AppSettings["Connection"])));
                break;

            case ConsumerQueueTypes.Method:
                Queues.Add(queueName,
                           _queueContainer.Value.CreateMethodConsumer(new QueueConnection(queueName,
                                                                                          ConfigurationManager.AppSettings["Connection"]), x => { }));
                break;
            }
        }
        private void CreateModuleIfNeeded(string queueName, ConsumerQueueTypes type)
        {
            if (_queues.ContainsKey(queueName))
            {
                return;
            }
            var connection = ConfigurationManager.AppSettings["Connection"];

            switch (type)
            {
            case ConsumerQueueTypes.Poco:
                _queues.Add(queueName,
                            _queueContainer.Value.CreateRpc <SimpleResponse, SimpleMessage, RedisQueueRpcConnection>(
                                new RedisQueueRpcConnection(connection, queueName)));
                break;

            case ConsumerQueueTypes.Method:
                _queues.Add(queueName,
                            _queueContainer.Value.CreateMethodRpc(
                                new RedisQueueRpcConnection(connection, queueName)));
                break;
            }
            QueueStatus?.AddStatusProvider(QueueStatusContainer.Value.CreateStatusProvider <RedisQueueInit>(queueName, connection));
        }
Beispiel #9
0
        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, SqLiteRpcConnection>(
                              new SqLiteRpcConnection(connection, queueNameReceive, connection, queueNameResponse)));
                        break;
                    case ConsumerQueueTypes.Method:
                        _queues.Add(queueNameReceive,
                          _queueContainer.Value.CreateMethodRpc(
                              new SqLiteRpcConnection(connection, queueNameReceive, connection, queueNameResponse)));
                        break;
                }

                QueueStatus?.AddStatusProvider(QueueStatusContainer.Value.CreateStatusProvider<SqLiteMessageQueueInit>(queueNameReceive, connection));
                QueueStatus?.AddStatusProvider(QueueStatusContainer.Value.CreateStatusProvider<SqLiteMessageQueueInit>(queueNameResponse, connection));
            }
        }
Beispiel #10
0
 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"]));
     }
 }
 public ConsoleExecuteResult AddWorkGroup(QueueConnection queueConnection, ConsumerQueueTypes type, string workGroupName, int concurrencyLevel, int maxQueueSize = 0)
 {
     CreateModuleIfNeeded(queueConnection, type, workGroupName, concurrencyLevel, maxQueueSize);
     return(new ConsoleExecuteResult($"Added workgroup {workGroupName} for queue {queueConnection.Queue}"));
 }
        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, SqLiteRpcConnection>(
                                    new SqLiteRpcConnection(connection, queueNameReceive, connection, queueNameResponse, new DbDataSource())));
                    break;

                case ConsumerQueueTypes.Method:
                    _queues.Add(queueNameReceive,
                                _queueContainer.Value.CreateMethodRpc(
                                    new SqLiteRpcConnection(connection, queueNameReceive, connection, queueNameResponse, new DbDataSource())));
                    break;
                }

                QueueStatus?.AddStatusProvider(QueueStatusContainer.Value.CreateStatusProvider <SqLiteMessageQueueInit>(queueNameReceive, connection));
                QueueStatus?.AddStatusProvider(QueueStatusContainer.Value.CreateStatusProvider <SqLiteMessageQueueInit>(queueNameResponse, connection));
            }
        }