/// <summary> /// Select rabbitmq as transport for the service bus. /// </summary> /// <param name="provider"></param> /// <param name="queueConfigModel"></param> /// <param name="registrationAction"></param> /// <returns></returns> public static IBusControl ConfigureBusService(IServiceProvider provider, QueueConfigModel queueConfigModel, Action <IRabbitMqBusFactoryConfigurator, IRabbitMqHost> registrationAction = null) { return(MassTransit.Bus.Factory.CreateUsingRabbitMq(cfg => { var host = cfg.Host(new Uri(queueConfigModel.HostName), hst => { hst.Username(queueConfigModel.UserName); hst.Password(queueConfigModel.Password); }); cfg.ConfigureEndpoints(provider); registrationAction?.Invoke(cfg, host); })); }
public static QueueConfigModel GetQueueConfig(this IConfiguration configuration) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var serviceConfig = new QueueConfigModel { HostName = configuration.GetValue <string>("RabbitMQ:HostName"), UserName = configuration.GetValue <string>("RabbitMQ:UserName"), Password = configuration.GetValue <string>("RabbitMQ:Password"), QueueName = configuration.GetValue <string>("RabbitMQ:QueueName") }; return(serviceConfig); }
public static IServiceCollection AddRabbitMQConsumerServices <T>(this IServiceCollection services, QueueConfigModel queueConfigModel) where T : class, IConsumer { services.AddMassTransit(cfg => { cfg.AddConsumer <T>(); cfg.AddBus(provider => BusService.ConfigureBusService(provider, queueConfigModel, (cfg, host) => { cfg.ReceiveEndpoint(queueConfigModel.QueueName, ep => { ep.ConfigureConsumer <T>(provider); }); })); }); services.AddMassTransitHostedService(); return(services); }
public static IServiceCollection AddRabbitMQServices(this IServiceCollection services, QueueConfigModel queueConfigModel) { services.AddMassTransit(cfg => { cfg.AddBus(provider => BusService.ConfigureBusService(provider, queueConfigModel)); }); return(services); }
public QueueMessageService(QueueConfigModel queueConfig, ISendEndpointProvider sendEndpointProvider) { _queueConfig = queueConfig; _sendEndpointProvider = sendEndpointProvider; }