class PubsubClient::Subscriber
Constants
- DEFAULT_CONCURRENCY
Public Class Methods
new(subscription)
click to toggle source
@param subscription [Google::Cloud::PubSub::Subscription]
# File lib/pubsub_client/subscriber.rb, line 10 def initialize(subscription) @subscription = subscription end
Public Instance Methods
listener(concurrency: DEFAULT_CONCURRENCY, auto_ack: true) { |data, received_message| ... }
click to toggle source
@param concurrency [Integer] - The number of threads to run the subscriber with. Default is 8. @param auto_ack [Boolean] - Flag to acknowledge the Pub/Sub message. A message must be acked to remove it from the topic. Default is `true`.
@return [Google::Cloud::PubSub::Subscriber]
# File lib/pubsub_client/subscriber.rb, line 19 def listener(concurrency: DEFAULT_CONCURRENCY, auto_ack: true, &block) @listener ||= begin @subscription.listen(threads: { callback: concurrency }) do |received_message| yield received_message.data, received_message received_message.acknowledge! if auto_ack end end end
on_error() { |exception| ... }
click to toggle source
# File lib/pubsub_client/subscriber.rb, line 40 def on_error(&block) raise ConfigurationError, 'A listener must be configured' unless @listener @listener.on_error do |exception| yield exception end end
subscribe()
click to toggle source
# File lib/pubsub_client/subscriber.rb, line 28 def subscribe raise ConfigurationError, 'A listener must be configured' unless @listener begin @listener.start sleep rescue SignalException @listener.stop.wait! end end