Esempio n. 1
0
        async Task <BatchConsumer <TConsumer, TMessage> > Add(ConsumeContext <TMessage> context)
        {
            if (_currentConsumer != null)
            {
                if (context.GetRetryAttempt() > 0)
                {
                    await _currentConsumer.ForceComplete().ConfigureAwait(false);
                }
            }

            if (_currentConsumer == null || _currentConsumer.IsCompleted)
            {
                _currentConsumer = new BatchConsumer <TConsumer, TMessage>(_messageLimit, _timeLimit, _collector, _dispatcher, _consumerFactory, _consumerPipe);
            }

            await _currentConsumer.Add(context).ConfigureAwait(false);

            return(_currentConsumer);
        }
        BatchConsumer <TConsumer, TMessage> Add(ConsumeContext <TMessage> context)
        {
            if (_currentConsumer != null)
            {
                if (context.GetRetryAttempt() > 0)
                {
                    _currentConsumer.ForceComplete();
                }
            }

            if (_currentConsumer == null || _currentConsumer.IsCompleted)
            {
                _currentConsumer = new BatchConsumer <TConsumer, TMessage>(_messageLimit, _timeLimit, _scheduler, _consumerFactory, _consumerPipe);
            }

            _currentConsumer.Add(context);

            BatchConsumer <TConsumer, TMessage> consumer = _currentConsumer;

            return(consumer);
        }