public InboundConsumer(IBroker broker, IEndpoint endpoint, InboundConnectorSettings settings, Func <IEnumerable <IInboundMessage>, IServiceProvider, Task> messagesHandler, Func <IServiceProvider, Task> commitHandler, Func <IServiceProvider, Task> rollbackHandler, IErrorPolicy errorPolicy, IServiceProvider serviceProvider) { if (broker == null) { throw new ArgumentNullException(nameof(broker)); } _endpoint = endpoint ?? throw new ArgumentNullException(nameof(endpoint)); _settings = settings ?? throw new ArgumentNullException(nameof(settings)); _errorPolicy = errorPolicy; _messagesHandler = messagesHandler ?? throw new ArgumentNullException(nameof(messagesHandler)); _commitHandler = commitHandler ?? throw new ArgumentNullException(nameof(commitHandler)); _rollbackHandler = rollbackHandler ?? throw new ArgumentNullException(nameof(rollbackHandler)); _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); _logger = serviceProvider.GetRequiredService <ILogger <InboundConsumer> >(); _errorPolicyHelper = serviceProvider.GetRequiredService <ErrorPolicyHelper>(); _consumer = broker.GetConsumer(_endpoint); Bind(); }
public MessageBatch( BatchSettings settings, Func <IEnumerable <IInboundMessage>, IServiceProvider, Task> messagesHandler, Func <IEnumerable <IOffset>, IServiceProvider, Task> commitHandler, Func <IServiceProvider, Task> rollbackHandler, IErrorPolicy errorPolicy, IServiceProvider serviceProvider) { _messagesHandler = messagesHandler ?? throw new ArgumentNullException(nameof(messagesHandler)); _commitHandler = commitHandler ?? throw new ArgumentNullException(nameof(commitHandler)); _rollbackHandler = rollbackHandler ?? throw new ArgumentNullException(nameof(rollbackHandler)); _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); _errorPolicyHelper = serviceProvider.GetRequiredService <ErrorPolicyHelper>(); _errorPolicy = errorPolicy; _settings = settings; _messages = new List <IInboundMessage>(_settings.Size); if (_settings.MaxWaitTime < TimeSpan.MaxValue) { _waitTimer = new Timer(_settings.MaxWaitTime.TotalMilliseconds); _waitTimer.Elapsed += OnWaitTimerElapsed; } _logger = serviceProvider.GetRequiredService <ILogger <MessageBatch> >(); _messageLogger = serviceProvider.GetRequiredService <MessageLogger>(); }