public static IServiceCollection AddRabbitMq(this IServiceCollection services, IConfiguration configuration) { var rabbitMqConnection = new RabbitMqConnectionSettings(); configuration.GetSection("RabbitMq:Connection").Bind(rabbitMqConnection); services.AddSingleton(rabbitMqConnection); var rabbitMqRouting = new RabbitMqPubSubSettings(); configuration.GetSection("RabbitMq:Routing").Bind(rabbitMqRouting); services.AddSingleton(rabbitMqRouting); services.AddSingleton <ObjectPoolProvider, DefaultObjectPoolProvider>(); services.AddSingleton <IPooledObjectPolicy <IModel>, RabbitMqModelPooledObjectPolicyAsync>(); return(services); }
/// <summary> /// Констурктор /// </summary> /// <param name="pooledChannelPolicy">Политика управления каналами в пуле</param> /// <param name="options">Общии настройки подключения для publisher/consumer</param> /// <param name="logger"></param> /// <param name="args"></param> protected RabbitMqProducerBase( IPooledObjectPolicy <IModel> pooledChannelPolicy, RabbitMqPubSubSettings options, ILogger logger, (string key, object val)[]?args = default)
/// <summary> /// Конструктор с параметрами /// </summary> /// <param name="mediator">Посредник Джимми Б.</param> /// <param name="pooledChannelPolicy">Политика управления каналами в пуле</param> /// <param name="options">Общии настройки подключения для publisher/consumer</param> /// <param name="args"></param> /// <param name="logger"></param> public RabbitMqConsumerBase( IMediator mediator, IPooledObjectPolicy <IModel> pooledChannelPolicy, RabbitMqPubSubSettings options, ILogger logger, (string key, object val)[]?args = default)
/// <summary> /// Констурктор с параметрами /// </summary> /// <param name="pooledChannelPolicy">Политика управления каналами в пуле</param> /// <param name="options">Общии настройки подключения для publisher/consumer</param> /// <param name="args"></param> protected RabbitMqClientBase( IPooledObjectPolicy <IModel> pooledChannelPolicy, RabbitMqPubSubSettings options, (string key, object val)[]?args = default)