public static SqlServerStorage UseRabbitMq(this SqlServerStorage storage, Action<RabbitMqConnectionConfiguration> configureAction, params string[] queues)
        {
            if (storage == null) throw new ArgumentNullException("storage");
            if (queues == null) throw new ArgumentNullException("queues");
            if (configureAction == null) throw new ArgumentNullException("configureAction");

            RabbitMqConnectionConfiguration conf = new RabbitMqConnectionConfiguration();
            configureAction(conf);

            ConnectionFactory cf = new ConnectionFactory();

            // Use configuration from URI, otherwise use properties
            if (conf.Uri != null)
            {
                cf.uri = conf.Uri;
            }
            else
            {
                cf.HostName = conf.HostName;
                cf.Port = conf.Port;
                cf.UserName = conf.Username;
                cf.Password = conf.Password;
                cf.VirtualHost = conf.VirtualHost;
            }

            var provider = new RabbitMqJobQueueProvider(queues, cf);

            storage.QueueProviders.Add(provider, queues);

            return storage;
        }
Exemple #2
0
        public static SqlServerStorage UseRabbitMq(this SqlServerStorage storage, Action <RabbitMqConnectionConfiguration> configureAction, params string[] queues)
        {
            if (storage == null)
            {
                throw new ArgumentNullException("storage");
            }
            if (queues == null)
            {
                throw new ArgumentNullException("queues");
            }
            if (configureAction == null)
            {
                throw new ArgumentNullException("configureAction");
            }

            RabbitMqConnectionConfiguration conf = new RabbitMqConnectionConfiguration();

            configureAction(conf);

            ConnectionFactory cf = new ConnectionFactory();

            cf.VirtualHost = conf.VirtualHost;
            cf.HostName    = conf.HostName;
            cf.Port        = conf.Port;
            cf.UserName    = conf.Username;
            cf.Password    = conf.Password;

            var provider = new RabbitMqJobQueueProvider(queues, cf);

            storage.QueueProviders.Add(provider, queues);

            return(storage);
        }
Exemple #3
0
        public static SqlServerStorage UseRabbitMq(this SqlServerStorage storage, Action <RabbitMqConnectionConfiguration> configureAction, params string[] queues)
        {
            if (storage == null)
            {
                throw new ArgumentNullException("storage");
            }
            if (queues == null)
            {
                throw new ArgumentNullException("queues");
            }
            if (queues.Length == 0)
            {
                throw new ArgumentException("No queue(s) specified for RabbitMQ provider.", "queues");
            }
            if (configureAction == null)
            {
                throw new ArgumentNullException("configureAction");
            }

            var conf = new RabbitMqConnectionConfiguration();

            configureAction(conf);

            var cf = new ConnectionFactory();

            // Use configuration from URI, otherwise use properties
            if (conf.Uri != null)
            {
                cf.uri = conf.Uri;
            }
            else
            {
                cf.HostName    = conf.HostName;
                cf.Port        = conf.Port;
                cf.UserName    = conf.Username;
                cf.Password    = conf.Password;
                cf.VirtualHost = conf.VirtualHost;
            }

            cf.NetworkRecoveryInterval  = conf.NetworkRecoveryInterval;
            cf.TopologyRecoveryEnabled  = conf.TopologyRecoveryEnabled;
            cf.AutomaticRecoveryEnabled = conf.AutomaticRecoveryEnabled;

            var provider = new RabbitMqJobQueueProvider(queues, cf, channel =>
                                                        channel.BasicQos(0,
                                                                         conf.PrefetchCount,
                                                                         false // applied separately to each new consumer on the channel
                                                                         ));

            storage.QueueProviders.Add(provider, queues);

            return(storage);
        }
        public static SqlServerStorage UseRabbitMq(this SqlServerStorage storage, Action<RabbitMqConnectionConfiguration> configureAction, params string[] queues)
        {
            if (storage == null) throw new ArgumentNullException("storage");
            if (queues == null) throw new ArgumentNullException("queues");
            if (configureAction == null) throw new ArgumentNullException("configureAction");

            RabbitMqConnectionConfiguration conf = new RabbitMqConnectionConfiguration();
            configureAction(conf);

            ConnectionFactory cf = new ConnectionFactory();
            cf.HostName = conf.HostName;
            cf.Port = conf.Port;
            cf.UserName = conf.Username;
            cf.Password = conf.Password;
            
            var provider = new RabbitMqJobQueueProvider(queues, cf);

            storage.QueueProviders.Add(provider, queues);

            return storage;
        }
        public void Ctor_UsesDefaultVirtualHost_WithDefaultConstructor()
        {
            RabbitMqConnectionConfiguration conf = new RabbitMqConnectionConfiguration();

            Assert.Equal(RabbitMqConnectionConfiguration.DefaultVirtualHost, conf.VirtualHost);
        }
        public void Ctor_UsesDefaultPassword_WithDefaultConstructor()
        {
            RabbitMqConnectionConfiguration conf = new RabbitMqConnectionConfiguration();

            Assert.Equal(RabbitMqConnectionConfiguration.DefaultPassword, conf.Password);
        }
        public void Ctor_UsesDefaultUserName_WithDefaultConstructor()
        {
            RabbitMqConnectionConfiguration conf = new RabbitMqConnectionConfiguration();

            Assert.Equal(RabbitMqConnectionConfiguration.DefaultUser, conf.Username);
        }