public void OnPartitionsAssignedResetOffset(KafkaPartitionsAssignedEvent message) { // Always skip to the end of each partition message.Partitions = message.Partitions .Select( topicPartitionOffset => new TopicPartitionOffset( topicPartitionOffset.TopicPartition, Offset.End)) .ToList(); }
private IEnumerable <TopicPartitionOffset> OnPartitionsAssigned( KafkaConsumer ownerConsumer, IConsumer <byte[]?, byte[]?> consumer, List <TopicPartition> partitions) { partitions.ForEach( partition => { _logger.LogInformation( KafkaEventIds.PartitionsAssigned, "Assigned partition {topic} {partition}, member id: {memberId}", partition.Topic, partition.Partition, consumer.MemberId); }); var partitionsAssignedEvent = new KafkaPartitionsAssignedEvent(partitions, consumer.MemberId); CreateScopeAndPublishEvent(partitionsAssignedEvent); foreach (var topicPartitionOffset in partitionsAssignedEvent.Partitions) { if (topicPartitionOffset.Offset != Offset.Unset) { _logger.LogDebug( KafkaEventIds.PartitionOffsetReset, "{topic} {partition} offset will be reset to {offset}.", topicPartitionOffset.Topic, topicPartitionOffset.Partition, topicPartitionOffset.Offset); } } ownerConsumer.OnPartitionsAssigned( partitionsAssignedEvent.Partitions.Select( topicPartitionOffset => topicPartitionOffset.TopicPartition).ToList()); return(partitionsAssignedEvent.Partitions); }
public void OnPartitionsAssigned(KafkaPartitionsAssignedEvent message) => _logger.LogInformation( "KafkaPartitionsAssignedEvent received: {count} partitions have been assigned ({partitions})", message.Partitions.Count, string.Join(", ", message.Partitions.Select(partition => partition.TopicPartition.ToString())));