private async Task ConsumeNextAsync(CancellationToken cancellationToken)
        {
            var result = _consumer.Consume(cancellationToken);

            if (result.IsPartitionEOF)
            {
                if (_endOfPartitionHandler != null)
                {
                    _logger.Log(LogLevel.Info, $"Reached the end of partition {result.Partition} for topic {result.Topic}. Calling handler");
                    await _endOfPartitionHandler.Invoke(cancellationToken);
                }

                _logger.Log(LogLevel.Info,
                            $"Reached the end of partition {result.Partition} for topic {result.Topic}. Waiting {_configuration.WaitInMsOnPartitionEnd}");
                Task.Delay(_configuration.WaitInMsOnPartitionEnd, cancellationToken).Wait(cancellationToken);
                return;
            }

            var message = new ConsumedMessage <TKey, TValue>
            {
                Topic     = result.Topic,
                Partition = result.Partition,
                Offset    = result.Offset,
                Key       = result.Message.Key,
                Value     = result.Message.Value,
            };

            await _messageHandler.Invoke(message, cancellationToken);
        }
 public void Log(IConsumer <TKey, TValue> consumer, LogMessage logMessage)
 {
     _logger.Log(logMessage);
 }
Example #3
0
 public void LogMessage(IProducer <byte[], byte[]> producer, LogMessage logMessage)
 {
     _logger.Log(logMessage);
 }
 public void Log(LogLevel level, string message)
 {
     _logger.Log(level, message);
 }
        internal static void Log <T>(this IKafkaLogger <T> logger, LogMessage logMessage)
        {
            var level = (LogLevel)((int)logMessage.Level);

            logger.Log(level, logMessage.Message, logMessage.Name, logMessage.Facility);
        }