Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- consumer_ids = [0, 1, 2]
- topics_to_partitions = { 'iq_delivery_receipt' => 6, 'iq_delivery_recommendation' => 4 }
- def assign(members:, topics_to_partitions:)
- group_assignment = {}
- topics_to_partitions.each do |topic, num_partitions|
- partitions = *(0..num_partitions - 1)
- partitions_per_member = partitions.group_by {|partition_id|
- partition_id % members.count
- }.values
- members.zip(partitions_per_member).each do |member_id, member_partitions|
- unless member_partitions.nil?
- group_assignment[member_id].assign(topic, member_partitions)
- end
- end
- end
- group_assignment
- end
Add Comment
Please, Sign In to add comment