Class: PulsarSdk::Protocol::Partitioned

Inherits:
Object
  • Object
show all
Defined in:
lib/pulsar_sdk/protocol/partitioned.rb

Instance Method Summary collapse

Constructor Details

#initialize(client, topic) ⇒ Partitioned

Returns a new instance of Partitioned.



4
5
6
7
# File 'lib/pulsar_sdk/protocol/partitioned.rb', line 4

def initialize(client, topic)
  @client = client
  @tn = ::PulsarSdk::Protocol::Topic.parse(topic)
end

Instance Method Details

#partitioned?Boolean

当前topic是否是分区topic

Returns:

  • (Boolean)


27
28
29
# File 'lib/pulsar_sdk/protocol/partitioned.rb', line 27

def partitioned?
  .partitions > 0
end

#partitionsObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/pulsar_sdk/protocol/partitioned.rb', line 9

def partitions
  pmr = 

  if !success_response?(pmr)
    PulsarSdk.logger.error(__method__){"Get topic partitioned metadata failed, #{pmr.error}: #{pmr.message}"}
    return []
  end

  return [@tn.to_s] if pmr.partitions.zero?

  tn = @tn.dup
  (0..pmr.partitions).map do |i|
    tn.partition = i
    tn.to_s
  end
end