Class: KubeMQ::CQ::QueriesSubscription

Inherits:
Object
  • Object
show all
Defined in:
lib/kubemq/cq/queries_subscription.rb

Overview

Configuration for subscribing to query requests.

Pass to KubeMQ::CQClient#subscribe_to_queries along with a block to receive QueryReceived messages. Use #group for load-balanced delivery across multiple responders.

Examples:

sub = KubeMQ::CQ::QueriesSubscription.new(
  channel: "queries.user.get",
  group: "user-service"
)
client.subscribe_to_queries(sub) do |query|
  # process and respond
end

See Also:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(channel:, group: nil) ⇒ QueriesSubscription

Returns a new instance of QueriesSubscription.

Parameters:

  • channel (String)

    channel name (required)

  • group (String, nil) (defaults to: nil)

    consumer group name (default: nil)



31
32
33
34
# File 'lib/kubemq/cq/queries_subscription.rb', line 31

def initialize(channel:, group: nil)
  @channel = channel
  @group = group
end

Instance Attribute Details

#channelString

Returns channel name to subscribe to.

Returns:

  • (String)

    channel name to subscribe to



27
28
29
# File 'lib/kubemq/cq/queries_subscription.rb', line 27

def channel
  @channel
end

#groupString?

Returns consumer group for load-balanced delivery.

Returns:

  • (String, nil)

    consumer group for load-balanced delivery



27
# File 'lib/kubemq/cq/queries_subscription.rb', line 27

attr_accessor :channel, :group

Instance Method Details

#subscribe_typeInteger

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns the subscribe type constant for the transport layer.

Returns:



40
41
42
# File 'lib/kubemq/cq/queries_subscription.rb', line 40

def subscribe_type
  SubscribeType::QUERIES
end