internal static void AddMassTransit(this IServiceCollection services, RabbitMqConnectionSettings _settings) { var bus = Bus.Factory.CreateUsingRabbitMq(cfg => { var rabbitHost = _settings.Rabbitmq; var rabbitUser = _settings.UserName; var rabbitPass = _settings.Password; cfg.Host(new Uri($"rabbitmq://{rabbitHost}/"), h => { h.Username(rabbitUser); h.Password(rabbitPass); }); cfg.ReceiveEndpoint("Masstransit.students", e => { e.Consumer <StudentConsumer>(); }); }); services.AddSingleton <IPublishEndpoint>(bus); services.AddSingleton <ISendEndpointProvider>(bus); services.AddSingleton <IBus>(bus); services.AddSingleton <IBusControl>(bus); services.AddScoped <IPublisher, Publisher>(); services.AddSingleton <IBusDepot, BusDepot>(); services.AddMassTransitHostedService(); }
public BaseBroker(IOptions <RabbitMqConnectionSettings> connectionSettingsSnapshot) { this._connectionSettings = connectionSettingsSnapshot.Value; this._connectionFactory = new ConnectionFactory { UserName = this._connectionSettings.Username, Password = this._connectionSettings.Password, VirtualHost = this._connectionSettings.VirtualHost, HostName = this._connectionSettings.HostName, Uri = new Uri(this._connectionSettings.Uri) }; }
internal static void AddRabbitMq(this IServiceCollection services, RabbitMqConnectionSettings _settings) { services.AddSingleton <RabbitMqConnectionSettings>(_settings); services.Configure <RabbitMqConnectionSettings>(option => { option.Rabbitmq = _settings.Rabbitmq; option.Password = _settings.Password; option.UserName = _settings.UserName; }); services.AddTransient <IRabbitMqClient, RabbitMqClient>(); services.AddTransient <IStudentAudit, StudentAudit>(); }
private static RabbitMqQueueSettings CheckByRegExp(RabbitMqConnectionSettings connectionSettings, string queueName) { var queueNames = connectionSettings.Queues.Keys.ToList(); foreach (var queue in queueNames) { if (Regex.IsMatch(queueName, queue)) { return(connectionSettings.Queues[queue]); } } return(null); }
private static RabbitMqQueueSettings TryGetQueueSettings(RabbitMqConnectionSettings connectionSettings, RabbitMqQueue queue) { if (connectionSettings.Queues != null) { connectionSettings.Queues.TryGetValue(queue.Name, out var queueSettings); if (queueSettings == null) { queueSettings = CheckByRegExp(connectionSettings, queue.Name); } return(queueSettings); } return(null); }
private async Task ProcessConnectionAsync(RabbitMqConnectionSettings connectionSettings) { try { var queues = await _rabbitMqManagementService.GetQueuesAsync(connectionSettings.Url, connectionSettings.Username, connectionSettings.Password); foreach (var queue in queues) { ProcessQueue(connectionSettings, queue); } } catch (Exception ex) { _log.WriteError(nameof(Execute), connectionSettings.Url, ex); } }
private void ProcessQueue(RabbitMqConnectionSettings connectionSettings, RabbitMqQueue queue) { var queueSettings = TryGetQueueSettings(connectionSettings, queue); var maxMessagesCount = queueSettings?.MaxMessagesCount ?? connectionSettings.MaxMessagesCount ?? _maxMessagesCount; if (queue.Messages >= maxMessagesCount) { var title = connectionSettings.Title ?? new Uri(connectionSettings.Url).Host; _log.WriteMonitor( title, string.Empty, $"Queue '{queue.Name}' contains {queue.Messages} messages"); } }
private void SetupRabbitMq(RabbitMqConnectionSettings settings) { _connectionFactory = new ConnectionFactory { HostName = settings.Rabbitmq, UserName = settings.UserName, Password = settings.Password }; if (string.IsNullOrEmpty(VirtualHost) == false) { _connectionFactory.VirtualHost = VirtualHost; } if (Port > 0) { _connectionFactory.Port = Port; } _connection = _connectionFactory.CreateConnection(); _channel = _connection.CreateModel(); }
public RabbitMqClient(RabbitMqConnectionSettings rabbitMqConnectionSettings, IAuditRepository auditRepository) { _rabbitMqConnectionSettings = rabbitMqConnectionSettings; SetupRabbitMq(_rabbitMqConnectionSettings); _auditRepository = auditRepository; }
public Startup(IConfiguration configuration) { _configuration = configuration; _connectionStrings = _configuration.GetSection(SettingsCommonNodeNames.ConnectionStringsConfiguration).Get <ConnectionStringsConfiguration>(); _rabbitMqConnectionSettings = _configuration.GetSection(SettingsCommonNodeNames.RabbitMqConnectionSettings).Get <RabbitMqConnectionSettings>(); }