Esempio n. 1
0
        //protected readonly IEventBusRpcServer _eventBusRpcServer;

        public Test()
        {
            Configuration.ProtoBufConfiguration();
            LoggerFactory = Microsoft.Extensions.Logging.LoggerFactory.Create(builder =>
            {
                builder.AddConsole();
                builder.SetMinimumLevel(LogLevel.Trace);
            });

            ConnectionFactory = new ConnectionFactory
            {
                HostName = "localhost",
                UserName = "******",
                Password = "******",
                AutomaticRecoveryEnabled = true,
                NetworkRecoveryInterval  = TimeSpan.FromSeconds(10),
                RequestedHeartbeat       = TimeSpan.FromSeconds(10),
                DispatchConsumersAsync   = true
            };

            ExchangeDeclareParameters = new ExchangeDeclareParameters("k-society_test", KSociety.Base.EventBus.ExchangeType.Direct, false, ExchangeAutoDelete);
            QueueDeclareParameters    = new QueueDeclareParameters(false, false, QueueAutoDelete);

            PersistentConnection = new DefaultRabbitMqPersistentConnection(ConnectionFactory, LoggerFactory);

            var builder = new ContainerBuilder();

            builder.RegisterModule(new Bindings.Test.Test());
            var container = builder.Build();

            ComponentContext = container.BeginLifetimeScope();
        }
        static LoggerConfiguration RegisterSink(
            LoggerSinkConfiguration loggerConfiguration,
            IConnectionFactory connectionFactory,
            IExchangeDeclareParameters exchangeDeclareParameters,
            IQueueDeclareParameters queueDeclareParameters,
            RabbitMqSinkConfiguration sinkConfiguration)
        {
            // guards
            if (loggerConfiguration == null)
            {
                throw new ArgumentNullException("loggerConfiguration");
            }
            //if (connectionFactory.HostN == 0) throw new ArgumentException("hostnames cannot be empty, specify at least one hostname", "hostnames");
            if (string.IsNullOrEmpty(connectionFactory.UserName))
            {
                throw new ArgumentException("username cannot be 'null' or and empty string.");
            }
            if (connectionFactory.Password == null)
            {
                throw new ArgumentException("password cannot be 'null'. Specify an empty string if password is empty.");
            }
            //if (connectionFactory.Port <= 0 || clientConfiguration.Port > 65535) throw new ArgumentOutOfRangeException("port", "port must be in a valid range (1 and 65535)");

            sinkConfiguration.BatchPostingLimit = (sinkConfiguration.BatchPostingLimit == default(int)) ? DefaultBatchPostingLimit : sinkConfiguration.BatchPostingLimit;
            sinkConfiguration.Period            = (sinkConfiguration.Period == default) ? DefaultPeriod : sinkConfiguration.Period;

            return
                (loggerConfiguration
                 .Sink(new RabbitMqSink(connectionFactory, exchangeDeclareParameters, queueDeclareParameters, sinkConfiguration), sinkConfiguration.RestrictedToMinimumLevel));
        }
 public EventBusRabbitMqQueue(IRabbitMqPersistentConnection persistentConnection, ILoggerFactory loggerFactory,
                              IIntegrationGeneralHandler eventHandler, IEventBusSubscriptionsManager subsManager,
                              IExchangeDeclareParameters exchangeDeclareParameters,
                              IQueueDeclareParameters queueDeclareParameters,
                              string queueName         = null,
                              CancellationToken cancel = default)
     : base(persistentConnection, loggerFactory, eventHandler, subsManager, exchangeDeclareParameters, queueDeclareParameters, queueName, cancel)
 {
     ConsumerChannel = CreateConsumerChannel(cancel);
 }
 /// <summary>
 /// Adds a sink that lets you push log messages to RabbitMQ
 /// Will be used when configuring via configuration file
 /// If you need to overrule the text formatter, you will need to supply it here as a separate parameter instead of supplying it via the RabbitMQSinkConfiguration instance
 /// which will not work when configuring via configuration file
 /// </summary>
 public static LoggerConfiguration RabbitMq(
     this LoggerSinkConfiguration loggerConfiguration,
     IConnectionFactory connectionFactory,
     IExchangeDeclareParameters exchangeDeclareParameters,
     IQueueDeclareParameters queueDeclareParameters,
     RabbitMqSinkConfiguration sinkConfiguration, ITextFormatter textFormatter = null)
 {
     if (textFormatter != null)
     {
         sinkConfiguration.TextFormatter = textFormatter;
     }
     return(RegisterSink(loggerConfiguration, connectionFactory, exchangeDeclareParameters, queueDeclareParameters, sinkConfiguration));
 }
Esempio n. 5
0
 public EventBusRabbitMqRpcServer(IRabbitMqPersistentConnection persistentConnection, ILoggerFactory loggerFactory,
                                  IIntegrationGeneralHandler eventHandler, IEventBusSubscriptionsManager subsManager,
                                  IExchangeDeclareParameters exchangeDeclareParameters,
                                  IQueueDeclareParameters queueDeclareParameters,
                                  string queueName         = null,
                                  CancellationToken cancel = default)
     : base(persistentConnection, loggerFactory, eventHandler, subsManager, exchangeDeclareParameters, queueDeclareParameters, queueName, cancel)
 {
     SubsManager.OnEventReplyRemoved += SubsManager_OnEventReplyRemoved;
     ConsumerChannel       = CreateConsumerChannel(cancel);
     _queueNameReply       = QueueName + "_Reply";
     _consumerChannelReply = CreateConsumerChannelReply(cancel);
 }
 protected EventBusRabbitMq(IRabbitMqPersistentConnection persistentConnection, ILoggerFactory loggerFactory,
                            IEventBusSubscriptionsManager subsManager,
                            IExchangeDeclareParameters exchangeDeclareParameters, IQueueDeclareParameters queueDeclareParameters, string queueName = null,
                            CancellationToken cancel = default)
 {
     ExchangeDeclareParameters = exchangeDeclareParameters;
     PersistentConnection      = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection));
     Logger                      = loggerFactory.CreateLogger <EventBusRabbitMq>() ?? throw new ArgumentNullException(nameof(loggerFactory));
     SubsManager                 = subsManager ?? new InMemoryEventBusSubscriptionsManager();
     QueueDeclareParameters      = queueDeclareParameters;
     QueueName                   = queueName;
     EventHandler                = null;
     SubsManager.OnEventRemoved += SubsManager_OnEventRemoved;
 }
Esempio n. 7
0
        public Biz(
            ILoggerFactory loggerFactory,
            IConnectionFactory connectionFactory,
            IExchangeDeclareParameters exchangeDeclareParameters,
            IQueueDeclareParameters queueDeclareParameters)
        {
            _loggerFactory             = loggerFactory;
            _logger                    = _loggerFactory.CreateLogger <Biz>();
            _connectionFactory         = connectionFactory;
            _exchangeDeclareParameters = exchangeDeclareParameters;
            _queueDeclareParameters    = queueDeclareParameters;
            _logger.LogInformation("C20052.Biz.Log biz! ");

            PersistentConnection = new DefaultRabbitMqPersistentConnection(_connectionFactory, _loggerFactory);
        }
Esempio n. 8
0
        public RabbitMqSink(
            IConnectionFactory connectionFactory,
            IExchangeDeclareParameters exchangeDeclareParameters,
            IQueueDeclareParameters queueDeclareParameters,
            RabbitMqSinkConfiguration rabbitMqSinkConfiguration)
            : base(rabbitMqSinkConfiguration.BatchPostingLimit, rabbitMqSinkConfiguration.Period)
        {
            _formatter = rabbitMqSinkConfiguration.TextFormatter;

            _connectionFactory         = connectionFactory;
            _exchangeDeclareParameters = exchangeDeclareParameters;
            _queueDeclareParameters    = queueDeclareParameters;

            _loggerFactory = LoggerFactory.Create(builder =>
            {
                builder
                .AddFilter("Microsoft", LogLevel.Warning)
                .AddFilter("System", LogLevel.Warning);
            });

            Initialize();
        }