class Fluent::GcloudPubSub::Publisher
Constants
- RETRYABLE_ERRORS
- RETRY_COUNT
Public Class Methods
new(project, key, topic_name, skip_lookup)
click to toggle source
autocreate_topic is unused
# File lib/fluent/plugin/gcloud_pubsub/client.rb, line 16 def initialize(project, key, topic_name, skip_lookup) Retryable.retryable(tries: RETRY_COUNT, on: RETRYABLE_ERRORS) do pubsub = Google::Cloud::Pubsub.new project: project, keyfile: key @client = pubsub.topic topic_name, skip_lookup: skip_lookup end raise Error.new "topic:#{topic_name} does not exist." if @client.nil? end
Public Instance Methods
publish(messages)
click to toggle source
# File lib/fluent/plugin/gcloud_pubsub/client.rb, line 24 def publish(messages) @client.publish do |batch| messages.each do |m| batch.publish m end end rescue Google::Cloud::UnavailableError, Google::Cloud::DeadlineExceededError, Google::Cloud::InternalError => ex raise RetryableError.new "Google api returns error:#{ex.class.to_s} message:#{ex.to_s}" end